classicube_sys\a\rust-classicube-sys\rust-classicube-sys\target\x86_64-pc-windows-msvc\debug\build\classicube-sys-daed7d449e16a847\out/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val { byte | mask } else { byte & !mask }
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        *byte = Self::change_bit(*byte, index, val);
60    }
61    #[inline]
62    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64        let byte_index = index / 8;
65        let byte = unsafe {
66            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67        };
68        unsafe { *byte = Self::change_bit(*byte, index, val) };
69    }
70    #[inline]
71    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        let mut val = 0;
76        for i in 0..(bit_width as usize) {
77            if self.get_bit(i + bit_offset) {
78                let index = if cfg!(target_endian = "big") {
79                    bit_width as usize - 1 - i
80                } else {
81                    i
82                };
83                val |= 1 << index;
84            }
85        }
86        val
87    }
88    #[inline]
89    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90        debug_assert!(bit_width <= 64);
91        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93        let mut val = 0;
94        for i in 0..(bit_width as usize) {
95            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96                let index = if cfg!(target_endian = "big") {
97                    bit_width as usize - 1 - i
98                } else {
99                    i
100                };
101                val |= 1 << index;
102            }
103        }
104        val
105    }
106    #[inline]
107    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        for i in 0..(bit_width as usize) {
112            let mask = 1 << i;
113            let val_bit_is_set = val & mask == mask;
114            let index = if cfg!(target_endian = "big") {
115                bit_width as usize - 1 - i
116            } else {
117                i
118            };
119            self.set_bit(index + bit_offset, val_bit_is_set);
120        }
121    }
122    #[inline]
123    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124        debug_assert!(bit_width <= 64);
125        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127        for i in 0..(bit_width as usize) {
128            let mask = 1 << i;
129            let val_bit_is_set = val & mask == mask;
130            let index = if cfg!(target_endian = "big") {
131                bit_width as usize - 1 - i
132            } else {
133                i
134            };
135            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136        }
137    }
138}
139pub const CC_WIN_BACKEND_TERMINAL: u32 = 1;
140pub const CC_WIN_BACKEND_SDL2: u32 = 2;
141pub const CC_WIN_BACKEND_SDL3: u32 = 3;
142pub const CC_WIN_BACKEND_X11: u32 = 4;
143pub const CC_WIN_BACKEND_WIN32: u32 = 5;
144pub const CC_WIN_BACKEND_COCOA: u32 = 6;
145pub const CC_WIN_BACKEND_BEOS: u32 = 7;
146pub const CC_WIN_BACKEND_ANDROID: u32 = 8;
147pub const CC_GFX_BACKEND_SOFTGPU: u32 = 1;
148pub const CC_GFX_BACKEND_GL1: u32 = 2;
149pub const CC_GFX_BACKEND_GL2: u32 = 3;
150pub const CC_GFX_BACKEND_D3D9: u32 = 4;
151pub const CC_GFX_BACKEND_D3D11: u32 = 5;
152pub const CC_GFX_BACKEND_VULKAN: u32 = 6;
153pub const CC_SSL_BACKEND_NONE: u32 = 1;
154pub const CC_SSL_BACKEND_BEARSSL: u32 = 2;
155pub const CC_SSL_BACKEND_SCHANNEL: u32 = 3;
156pub const CC_NET_BACKEND_BUILTIN: u32 = 1;
157pub const CC_NET_BACKEND_LIBCURL: u32 = 2;
158pub const CC_AUD_BACKEND_OPENAL: u32 = 1;
159pub const CC_AUD_BACKEND_WINMM: u32 = 2;
160pub const CC_AUD_BACKEND_OPENSLES: u32 = 3;
161pub const DEFAULT_NET_BACKEND: u32 = 1;
162pub const DEFAULT_SSL_BACKEND: u32 = 3;
163pub const DEFAULT_AUD_BACKEND: u32 = 2;
164pub const DEFAULT_GFX_BACKEND: u32 = 4;
165pub const DEFAULT_WIN_BACKEND: u32 = 5;
166pub const CC_WIN_BACKEND: u32 = 5;
167pub const CC_GFX_BACKEND: u32 = 4;
168pub const CC_SSL_BACKEND: u32 = 3;
169pub const CC_NET_BACKEND: u32 = 1;
170pub const CC_AUD_BACKEND: u32 = 2;
171pub const DEFAULT_SOUNDS_VOLUME: u32 = 100;
172pub const DEFAULT_MUSIC_VOLUME: u32 = 100;
173pub const AUDIO_MAX_BUFFERS: u32 = 4;
174pub const BITMAPCOLOR_B_SHIFT: u32 = 0;
175pub const BITMAPCOLOR_G_SHIFT: u32 = 8;
176pub const BITMAPCOLOR_R_SHIFT: u32 = 16;
177pub const BITMAPCOLOR_A_SHIFT: u32 = 24;
178pub const BITMAPCOLOR_SIZE: u32 = 4;
179pub const BITMAPCOLOR_R_MASK: u32 = 16711680;
180pub const BITMAPCOLOR_G_MASK: u32 = 65280;
181pub const BITMAPCOLOR_B_MASK: u32 = 255;
182pub const BITMAPCOLOR_A_MASK: u32 = 4278190080;
183pub const BITMAPCOLOR_RGB_MASK: u32 = 16777215;
184pub const PNG_SIG_SIZE: u32 = 8;
185pub const PNG_MAX_DIMS: u32 = 32768;
186pub const PACKEDCOL_B_SHIFT: u32 = 0;
187pub const PACKEDCOL_G_SHIFT: u32 = 8;
188pub const PACKEDCOL_R_SHIFT: u32 = 16;
189pub const PACKEDCOL_A_SHIFT: u32 = 24;
190pub const PACKEDCOL_R_MASK: u32 = 16711680;
191pub const PACKEDCOL_G_MASK: u32 = 65280;
192pub const PACKEDCOL_B_MASK: u32 = 255;
193pub const PACKEDCOL_A_MASK: u32 = 4278190080;
194pub const PACKEDCOL_RGB_MASK: u32 = 16777215;
195pub const PACKEDCOL_SHADE_X: f64 = 0.6;
196pub const PACKEDCOL_SHADE_Z: f64 = 0.8;
197pub const PACKEDCOL_SHADE_YMIN: f64 = 0.5;
198pub const GAME_MAX_CMDARGS: u32 = 5;
199pub const GAME_APP_VER: &[u8; 6] = b"1.3.7\0";
200pub const GAME_API_VER: u32 = 1;
201pub const GAME_APP_NAME: &[u8; 17] = b"ClassiCube 1.3.7\0";
202pub const GAME_APP_TITLE: &[u8; 17] = b"ClassiCube 1.3.7\0";
203pub const STRING_SIZE: u32 = 64;
204pub const FILENAME_SIZE: u32 = 260;
205pub const CHUNK_SIZE: u32 = 16;
206pub const HALF_CHUNK_SIZE: u32 = 8;
207pub const CHUNK_SIZE_2: u32 = 256;
208pub const CHUNK_SIZE_3: u32 = 4096;
209pub const CHUNK_MAX: u32 = 15;
210pub const CHUNK_MASK: u32 = 15;
211pub const CHUNK_SHIFT: u32 = 4;
212pub const EXTCHUNK_SIZE: u32 = 18;
213pub const EXTCHUNK_SIZE_2: u32 = 324;
214pub const EXTCHUNK_SIZE_3: u32 = 5832;
215pub const UV2_Scale: f64 = 0.999375;
216pub const GAME_DEF_TICKS: f64 = 0.05;
217pub const GAME_NET_TICKS: f64 = 0.016666666666666666;
218pub const GUI_MAX_CHATLINES: u32 = 30;
219pub const DRAWER2D_MAX_COLORS: u32 = 256;
220pub const SKINS_SERVER: &[u8; 31] = b"http://cdn.classicube.net/skin\0";
221pub const UPDATES_SERVER: &[u8; 33] = b"http://cdn.classicube.net/client\0";
222pub const SERVICES_SERVER: &[u8; 31] = b"https://www.classicube.net/api\0";
223pub const RESOURCE_SERVER: &[u8; 29] = b"http://static.classicube.net\0";
224pub const REGISTERNEW_URL: &[u8; 41] = b"https://www.classicube.net/acc/register/\0";
225pub const DEFAULT_USERNAME: &[u8; 13] = b"Singleplayer\0";
226pub const LIGHT_FLAG_SHADES_FROM_BELOW: u32 = 6;
227pub const CHATLOG_TIME_MASK: u32 = 31;
228pub const COMMAND_FLAG_SINGLEPLAYER_ONLY: u32 = 1;
229pub const COMMAND_FLAG_UNSPLIT_ARGS: u32 = 2;
230pub const INFLATE_MAX_INPUT: u32 = 8192;
231pub const INFLATE_MAX_CODELENS: u32 = 19;
232pub const INFLATE_MAX_LITS: u32 = 288;
233pub const INFLATE_MAX_DISTS: u32 = 32;
234pub const INFLATE_MAX_LITS_DISTS: u32 = 320;
235pub const INFLATE_MAX_BITS: u32 = 16;
236pub const INFLATE_FAST_BITS: u32 = 9;
237pub const INFLATE_FAST_LEN_SHIFT: u32 = 9;
238pub const INFLATE_FAST_VAL_MASK: u32 = 511;
239pub const INFLATE_WINDOW_SIZE: u32 = 32768;
240pub const INFLATE_WINDOW_MASK: u32 = 32767;
241pub const DEFLATE_BLOCK_SIZE: u32 = 16384;
242pub const DEFLATE_BUFFER_SIZE: u32 = 32768;
243pub const DEFLATE_OUT_SIZE: u32 = 8192;
244pub const DEFLATE_HASH_SIZE: u32 = 4096;
245pub const DEFLATE_HASH_MASK: u32 = 4095;
246pub const DRAWER2D_MAX_TEXT_LENGTH: u32 = 256;
247pub const STRING_INT_CHARS: u32 = 24;
248pub const STRINGSBUFFER_BUFFER_DEF_SIZE: u32 = 4096;
249pub const STRINGSBUFFER_FLAGS_DEF_ELEMS: u32 = 256;
250pub const STRINGSBUFFER_DEF_LEN_SHIFT: u32 = 9;
251pub const STRINGSBUFFER_DEF_LEN_MASK: u32 = 511;
252pub const MAX_LOCAL_PLAYERS: u32 = 1;
253pub const MAX_NET_PLAYERS: u32 = 255;
254pub const ENTITY_ADJUSTMENT: f64 = 0.001;
255pub const ENTITIES_MAX_COUNT: u32 = 256;
256pub const ENTITIES_SELF_ID: u32 = 255;
257pub const LU_HAS_POS: u32 = 1;
258pub const LU_HAS_PITCH: u32 = 2;
259pub const LU_HAS_YAW: u32 = 4;
260pub const LU_HAS_ROTX: u32 = 8;
261pub const LU_HAS_ROTZ: u32 = 16;
262pub const LU_POS_MODEMASK: u32 = 96;
263pub const LU_POS_ABSOLUTE_INSTANT: u32 = 0;
264pub const LU_POS_ABSOLUTE_SMOOTH: u32 = 32;
265pub const LU_POS_RELATIVE_SMOOTH: u32 = 64;
266pub const LU_POS_RELATIVE_SHIFT: u32 = 96;
267pub const LU_ORI_INTERPOLATE: u32 = 128;
268pub const SKIN_FETCH_DOWNLOADING: u32 = 1;
269pub const SKIN_FETCH_COMPLETED: u32 = 2;
270pub const ENTITY_FLAG_MODEL_RESTRICTED_SCALE: u32 = 1;
271pub const ENTITY_FLAG_HAS_MODELVB: u32 = 2;
272pub const ENTITY_FLAG_CLASSIC_ADJUST: u32 = 4;
273pub const TABLIST_MAX_NAMES: u32 = 256;
274pub const ENV_MINIMAL: u32 = 1;
275pub const ENV_LEGACY: u32 = 2;
276pub const EVENT_MAX_CALLBACKS: u32 = 32;
277pub const MATH_PI: f64 = 3.141592653589793;
278pub const MATH_DEG2RAD: f64 = 0.017453292519943295;
279pub const MATH_RAD2DEG: f64 = 57.29577951308232;
280pub const MATH_LARGENUM: f64 = 1000000000.0;
281pub const Game_NumStates: u32 = 1;
282pub const DEFAULT_VIEWDIST: u32 = 512;
283pub const DEFAULT_MAX_VIEWDIST: u32 = 32768;
284pub const TREE_MAX_COUNT: u32 = 96;
285pub const SIZEOF_VERTEX_COLOURED: u32 = 16;
286pub const SIZEOF_VERTEX_TEXTURED: u32 = 24;
287pub const GFX_MAX_INDICES: u32 = 98304;
288pub const GFX_MAX_VERTICES: u32 = 65536;
289pub const TEXTURE_FLAG_MANAGED: u32 = 1;
290pub const TEXTURE_FLAG_DYNAMIC: u32 = 2;
291pub const TEXTURE_FLAG_NONPOW2: u32 = 4;
292pub const TEXTURE_FLAG_LOWRES: u32 = 8;
293pub const TEXTURE_FLAG_BILINEAR: u32 = 16;
294pub const Gui_TouchUI: u32 = 0;
295pub const WIDGET_FLAG_DISABLED: u32 = 1;
296pub const WIDGET_FLAG_SELECTABLE: u32 = 2;
297pub const WIDGET_FLAG_MAINSCREEN: u32 = 4;
298pub const GUI_MAX_SCREENS: u32 = 10;
299pub const TEXTATLAS_MAX_WIDTHS: u32 = 16;
300pub const URL_MAX_SIZE: u32 = 128;
301pub const HTTP_FLAG_PRIORITY: u32 = 1;
302pub const HTTP_FLAG_NOCACHE: u32 = 2;
303pub const INPUT_SOURCE_NORMAL: u32 = 1;
304pub const INPUT_SOURCE_GAMEPAD: u32 = 2;
305pub const INPUT_DEVICE_NORMAL: u32 = 1;
306pub const INPUT_DEVICE_TOUCH: u32 = 2;
307pub const INPUT_DEVICE_GAMEPAD: u32 = 4;
308pub const INPUT_MAX_POINTERS: u32 = 1;
309pub const Pointers_Count: u32 = 1;
310pub const Input_TouchMode: u32 = 0;
311pub const TOUCH_TYPE_GUI: u32 = 1;
312pub const TOUCH_TYPE_CAMERA: u32 = 2;
313pub const TOUCH_TYPE_BLOCKS: u32 = 4;
314pub const TOUCH_TYPE_ALL: u32 = 7;
315pub const INPUT_MAX_GAMEPADS: u32 = 5;
316pub const HOTKEY_FLAG_STAYS_OPEN: u32 = 1;
317pub const HOTKEY_FLAG_AUTO_DEFINED: u32 = 2;
318pub const HOTKEYS_MAX_COUNT: u32 = 256;
319pub const INVENTORY_BLOCKS_PER_HOTBAR: u32 = 9;
320pub const INVENTORY_HOTBARS: u32 = 9;
321pub const HOTBAR_MAX_INDEX: u32 = 8;
322pub const ISOMETRICDRAWER_MAXVERTICES: u32 = 12;
323pub const LLAYOUT_EXTRA: u32 = 256;
324pub const LLAYOUT_WIDTH: u32 = 512;
325pub const LLAYOUT_HEIGHT: u32 = 768;
326pub const LINPUT_HEIGHT: u32 = 30;
327pub const LLINE_HEIGHT: u32 = 2;
328pub const FANCY_AO: f64 = 0.5;
329pub const FANCY_LIGHTING_LEVELS: u32 = 16;
330pub const FANCY_LIGHTING_MAX_LEVEL: u32 = 15;
331pub const FANCY_LIGHTING_LAMP_SHIFT: u32 = 4;
332pub const FANCY_LIGHTING_LAMP_MASK: u32 = 240;
333pub const MODEL_QUAD_VERTICES: u32 = 4;
334pub const MODEL_FLAG_INITED: u32 = 1;
335pub const MODEL_FLAG_CLEAR_HAT: u32 = 2;
336pub const MAX_CUSTOM_MODELS: u32 = 64;
337pub const MAX_CUSTOM_MODEL_PARTS: u32 = 64;
338pub const MAX_CUSTOM_MODEL_ANIMS: u32 = 4;
339pub const OPT_MUSIC_VOLUME: &[u8; 12] = b"musicvolume\0";
340pub const OPT_SOUND_VOLUME: &[u8; 13] = b"soundsvolume\0";
341pub const OPT_FORCE_OPENAL: &[u8; 12] = b"forceopenal\0";
342pub const OPT_MIN_MUSIC_DELAY: &[u8; 15] = b"music-mindelay\0";
343pub const OPT_MAX_MUSIC_DELAY: &[u8; 15] = b"music-maxdelay\0";
344pub const OPT_VIEW_DISTANCE: &[u8; 9] = b"viewdist\0";
345pub const OPT_BLOCK_PHYSICS: &[u8; 20] = b"singleplayerphysics\0";
346pub const OPT_NAMES_MODE: &[u8; 10] = b"namesmode\0";
347pub const OPT_INVERT_MOUSE: &[u8; 12] = b"invertmouse\0";
348pub const OPT_SENSITIVITY: &[u8; 17] = b"mousesensitivity\0";
349pub const OPT_FPS_LIMIT: &[u8; 9] = b"fpslimit\0";
350pub const OPT_DEFAULT_TEX_PACK: &[u8; 15] = b"defaulttexpack\0";
351pub const OPT_VIEW_BOBBING: &[u8; 12] = b"viewbobbing\0";
352pub const OPT_ENTITY_SHADOW: &[u8; 13] = b"entityshadow\0";
353pub const OPT_RENDER_TYPE: &[u8; 7] = b"normal\0";
354pub const OPT_SMOOTH_LIGHTING: &[u8; 19] = b"gfx-smoothlighting\0";
355pub const OPT_LIGHTING_MODE: &[u8; 17] = b"gfx-lightingmode\0";
356pub const OPT_MIPMAPS: &[u8; 12] = b"gfx-mipmaps\0";
357pub const OPT_CHAT_LOGGING: &[u8; 13] = b"chat-logging\0";
358pub const OPT_WINDOW_WIDTH: &[u8; 13] = b"window-width\0";
359pub const OPT_WINDOW_HEIGHT: &[u8; 14] = b"window-height\0";
360pub const OPT_HACKS_ENABLED: &[u8; 19] = b"hacks-hacksenabled\0";
361pub const OPT_FIELD_OF_VIEW: &[u8; 10] = b"hacks-fov\0";
362pub const OPT_SPEED_FACTOR: &[u8; 22] = b"hacks-speedmultiplier\0";
363pub const OPT_JUMP_VELOCITY: &[u8; 19] = b"hacks-jumpvelocity\0";
364pub const OPT_MODIFIABLE_LIQUIDS: &[u8; 23] = b"hacks-liquidsbreakable\0";
365pub const OPT_PUSHBACK_PLACING: &[u8; 22] = b"hacks-pushbackplacing\0";
366pub const OPT_NOCLIP_SLIDE: &[u8; 18] = b"hacks-noclipslide\0";
367pub const OPT_CAMERA_CLIPPING: &[u8; 21] = b"hacks-cameraclipping\0";
368pub const OPT_WOM_STYLE_HACKS: &[u8; 20] = b"hacks-womstylehacks\0";
369pub const OPT_FULL_BLOCK_STEP: &[u8; 20] = b"hacks-fullblockstep\0";
370pub const OPT_HACK_PERM_MSGS: &[u8; 16] = b"hacks-perm-msgs\0";
371pub const OPT_TAB_AUTOCOMPLETE: &[u8; 21] = b"gui-tab-autocomplete\0";
372pub const OPT_SHOW_BLOCK_IN_HAND: &[u8; 16] = b"gui-blockinhand\0";
373pub const OPT_CHATLINES: &[u8; 14] = b"gui-chatlines\0";
374pub const OPT_CLICKABLE_CHAT: &[u8; 18] = b"gui-chatclickable\0";
375pub const OPT_USE_CHAT_FONT: &[u8; 18] = b"gui-arialchatfont\0";
376pub const OPT_HOTBAR_SCALE: &[u8; 16] = b"gui-hotbarscale\0";
377pub const OPT_INVENTORY_SCALE: &[u8; 19] = b"gui-inventoryscale\0";
378pub const OPT_CHAT_SCALE: &[u8; 14] = b"gui-chatscale\0";
379pub const OPT_CHAT_AUTO_SCALE: &[u8; 18] = b"gui-autoscalechat\0";
380pub const OPT_CROSSHAIR_SCALE: &[u8; 19] = b"gui-crosshairscale\0";
381pub const OPT_SHOW_FPS: &[u8; 12] = b"gui-showfps\0";
382pub const OPT_FONT_NAME: &[u8; 13] = b"gui-fontname\0";
383pub const OPT_BLACK_TEXT: &[u8; 21] = b"gui-blacktextshadows\0";
384pub const OPT_LANDSCAPE_MODE: &[u8; 15] = b"landscape-mode\0";
385pub const OPT_CLASSIC_MODE: &[u8; 13] = b"mode-classic\0";
386pub const OPT_CUSTOM_BLOCKS: &[u8; 23] = b"nostalgia-customblocks\0";
387pub const OPT_CPE: &[u8; 17] = b"nostalgia-usecpe\0";
388pub const OPT_SERVER_TEXTURES: &[u8; 25] = b"nostalgia-servertextures\0";
389pub const OPT_CLASSIC_GUI: &[u8; 21] = b"nostalgia-classicgui\0";
390pub const OPT_SIMPLE_ARMS_ANIM: &[u8; 21] = b"nostalgia-simplearms\0";
391pub const OPT_CLASSIC_TABLIST: &[u8; 25] = b"nostalgia-classictablist\0";
392pub const OPT_CLASSIC_OPTIONS: &[u8; 25] = b"nostalgia-classicoptions\0";
393pub const OPT_CLASSIC_HACKS: &[u8; 16] = b"nostalgia-hacks\0";
394pub const OPT_CLASSIC_ARM_MODEL: &[u8; 21] = b"nostalgia-classicarm\0";
395pub const OPT_CLASSIC_CHAT: &[u8; 22] = b"nostalgia-classicchat\0";
396pub const OPT_CLASSIC_INVENTORY: &[u8; 27] = b"nostalgia-classicinventory\0";
397pub const OPT_MAX_CHUNK_UPDATES: &[u8; 20] = b"gfx-maxchunkupdates\0";
398pub const OPT_CAMERA_MASS: &[u8; 11] = b"cameramass\0";
399pub const OPT_CAMERA_SMOOTH: &[u8; 14] = b"camera-smooth\0";
400pub const OPT_GRAB_CURSOR: &[u8; 16] = b"win-grab-cursor\0";
401pub const OPT_TOUCH_BUTTONS: &[u8; 17] = b"gui-touchbuttons\0";
402pub const OPT_TOUCH_HALIGN: &[u8; 17] = b"gui-touch-halign\0";
403pub const OPT_TOUCH_SCALE: &[u8; 15] = b"gui-touchscale\0";
404pub const OPT_HTTP_ONLY: &[u8; 14] = b"http-no-https\0";
405pub const OPT_HTTPS_VERIFY: &[u8; 13] = b"https-verify\0";
406pub const OPT_SKIN_SERVER: &[u8; 16] = b"http-skinserver\0";
407pub const OPT_RAW_INPUT: &[u8; 14] = b"win-raw-input\0";
408pub const OPT_DPI_SCALING: &[u8; 16] = b"win-dpi-scaling\0";
409pub const OPT_GAME_VERSION: &[u8; 13] = b"game-version\0";
410pub const OPT_INV_SCROLLBAR_SCALE: &[u8; 20] = b"inv-scrollbar-scale\0";
411pub const OPT_ANAGLYPH3D: &[u8; 12] = b"anaglyph-3d\0";
412pub const OPT_SELECTED_BLOCK_OUTLINE_COLOR: &[u8; 29] = b"selected-block-outline-color\0";
413pub const OPT_SELECTED_BLOCK_OUTLINE_OPACITY: &[u8; 31] = b"selected-block-outline-opacity\0";
414pub const OPT_SELECTED_BLOCK_OUTLINE_SCALE: &[u8; 29] = b"selected-block-outline-scale\0";
415pub const LOPT_SESSION: &[u8; 17] = b"launcher-session\0";
416pub const LOPT_USERNAME: &[u8; 21] = b"launcher-cc-username\0";
417pub const LOPT_PASSWORD: &[u8; 21] = b"launcher-cc-password\0";
418pub const LOPT_AUTO_CLOSE: &[u8; 18] = b"autocloselauncher\0";
419pub const LOPT_SHOW_EMPTY: &[u8; 20] = b"launcher-show-empty\0";
420pub const ROPT_SERVER: &[u8; 16] = b"launcher-server\0";
421pub const ROPT_USER: &[u8; 18] = b"launcher-username\0";
422pub const ROPT_IP: &[u8; 12] = b"launcher-ip\0";
423pub const ROPT_PORT: &[u8; 14] = b"launcher-port\0";
424pub const ROPT_MPPASS: &[u8; 16] = b"launcher-mppass\0";
425pub const SOPT_SERVICES: &[u8; 16] = b"server-services\0";
426pub const _NL: &[u8; 3] = b"\r\n\0";
427pub const NATIVE_STR_LEN: u32 = 300;
428pub const UPDATE_FILE: &[u8; 18] = b"ClassiCube.update\0";
429pub const UNIX_EPOCH_SECONDS: u64 = 62135596800;
430pub const CC_SOCKETADDR_MAXSIZE: u32 = 512;
431pub const SOCKET_MAX_ADDRS: u32 = 5;
432pub const ATLAS2D_TILES_PER_ROW: u32 = 16;
433pub const ATLAS2D_MASK: u32 = 15;
434pub const ATLAS2D_SHIFT: u32 = 4;
435pub const ATLAS2D_MAX_ROWS_COUNT: u32 = 32;
436pub const ATLAS1D_MAX_ATLASES: u32 = 512;
437pub const MILLIS_PER_SEC: u32 = 1000;
438pub const SECS_PER_MIN: u32 = 60;
439pub const SECS_PER_HOUR: u32 = 3600;
440pub const SECS_PER_DAY: u32 = 86400;
441pub const KEYBOARD_FLAG_SEND: u32 = 256;
442pub const DEFAULT_UI_SCALE_X: f64 = 0.0015625;
443pub const DEFAULT_UI_SCALE_Y: f64 = 0.0020833333333333333;
444pub const OFD_UPLOAD_DELETE: u32 = 0;
445pub const OFD_UPLOAD_PERSIST: u32 = 1;
446pub const KB_TILE_SIZE: u32 = 32;
447pub const KB_B_CAPS: u32 = 16;
448pub const KB_B_SHIFT: u32 = 32;
449pub const KB_B_SPACE: u32 = 48;
450pub const KB_B_CLOSE: u32 = 64;
451pub const KB_B_BACK: u32 = 80;
452pub const KB_B_ENTER: u32 = 96;
453pub const VORBIS_MAX_CHANS: u32 = 8;
454pub const VORBIS_MAX_BLOCK_SIZE: u32 = 8192;
455pub const OGG_BUFFER_SIZE: u32 = 65280;
456pub const TEXTWIDGET_MAX: u32 = 4;
457pub const BUTTONWIDGET_MAX: u32 = 12;
458pub const HOTBAR_CORE_VERTICES: u32 = 108;
459pub const HOTBAR_MAX_VERTICES: u32 = 116;
460pub const TABLE_MAX_VERTICES: u32 = 960;
461pub const INPUTWIDGET_MAX_LINES: u32 = 3;
462pub const INPUTWIDGET_LEN: u32 = 64;
463pub const MENUINPUTWIDGET_MAX: u32 = 8;
464pub const TEXTGROUPWIDGET_LEN: u32 = 96;
465pub const WORLD_UUID_LEN: u32 = 16;
466pub const RESPAWN_NOT_FOUND: f64 = -100000.0;
467pub const DEFAULT_SINGLEPLAYER_ARG: &[u8; 15] = b"--singleplayer\0";
468pub const DEFAULT_RESUME_ARG: &[u8; 9] = b"--resume\0";
469pub type cc_int8 = ::std::os::raw::c_schar;
470pub type cc_int16 = ::std::os::raw::c_short;
471pub type cc_int32 = ::std::os::raw::c_int;
472pub type cc_int64 = ::std::os::raw::c_longlong;
473pub type cc_uint8 = ::std::os::raw::c_uchar;
474pub type cc_uint16 = ::std::os::raw::c_ushort;
475pub type cc_uint32 = ::std::os::raw::c_uint;
476pub type cc_uint64 = ::std::os::raw::c_ulonglong;
477pub type cc_uintptr = ::std::os::raw::c_ulonglong;
478pub type cc_codepoint = cc_uint32;
479pub type cc_unichar = cc_uint16;
480pub type cc_bool = cc_uint8;
481pub type BlockID = cc_uint16;
482pub type TextureLoc = cc_uint16;
483pub type BlockRaw = cc_uint8;
484pub type EntityID = cc_uint8;
485pub type Face = cc_uint8;
486pub type cc_result = cc_uint32;
487pub type TimeMS = cc_uint64;
488#[repr(C)]
489#[derive(Copy, Clone)]
490pub union cc_pointer_ {
491    pub val: cc_uintptr,
492    pub ptr: *mut ::std::os::raw::c_void,
493}
494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
495const _: () = {
496    ["Size of cc_pointer_"][::std::mem::size_of::<cc_pointer_>() - 8usize];
497    ["Alignment of cc_pointer_"][::std::mem::align_of::<cc_pointer_>() - 8usize];
498    ["Offset of field: cc_pointer_::val"][::std::mem::offset_of!(cc_pointer_, val) - 0usize];
499    ["Offset of field: cc_pointer_::ptr"][::std::mem::offset_of!(cc_pointer_, ptr) - 0usize];
500};
501pub type cc_pointer = cc_pointer_;
502#[repr(C)]
503#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
504pub struct Rect2D_ {
505    pub x: ::std::os::raw::c_int,
506    pub y: ::std::os::raw::c_int,
507    pub width: ::std::os::raw::c_int,
508    pub height: ::std::os::raw::c_int,
509}
510#[allow(clippy::unnecessary_operation, clippy::identity_op)]
511const _: () = {
512    ["Size of Rect2D_"][::std::mem::size_of::<Rect2D_>() - 16usize];
513    ["Alignment of Rect2D_"][::std::mem::align_of::<Rect2D_>() - 4usize];
514    ["Offset of field: Rect2D_::x"][::std::mem::offset_of!(Rect2D_, x) - 0usize];
515    ["Offset of field: Rect2D_::y"][::std::mem::offset_of!(Rect2D_, y) - 4usize];
516    ["Offset of field: Rect2D_::width"][::std::mem::offset_of!(Rect2D_, width) - 8usize];
517    ["Offset of field: Rect2D_::height"][::std::mem::offset_of!(Rect2D_, height) - 12usize];
518};
519pub type Rect2D = Rect2D_;
520#[repr(C)]
521#[derive(Debug, Copy, Clone, PartialEq)]
522pub struct TextureRec_ {
523    pub u1: f32,
524    pub v1: f32,
525    pub u2: f32,
526    pub v2: f32,
527}
528#[allow(clippy::unnecessary_operation, clippy::identity_op)]
529const _: () = {
530    ["Size of TextureRec_"][::std::mem::size_of::<TextureRec_>() - 16usize];
531    ["Alignment of TextureRec_"][::std::mem::align_of::<TextureRec_>() - 4usize];
532    ["Offset of field: TextureRec_::u1"][::std::mem::offset_of!(TextureRec_, u1) - 0usize];
533    ["Offset of field: TextureRec_::v1"][::std::mem::offset_of!(TextureRec_, v1) - 4usize];
534    ["Offset of field: TextureRec_::u2"][::std::mem::offset_of!(TextureRec_, u2) - 8usize];
535    ["Offset of field: TextureRec_::v2"][::std::mem::offset_of!(TextureRec_, v2) - 12usize];
536};
537pub type TextureRec = TextureRec_;
538#[repr(C)]
539#[derive(Debug, Hash, PartialEq, Eq)]
540pub struct cc_string_ {
541    pub buffer: *mut ::std::os::raw::c_char,
542    pub length: cc_uint16,
543    pub capacity: cc_uint16,
544}
545#[allow(clippy::unnecessary_operation, clippy::identity_op)]
546const _: () = {
547    ["Size of cc_string_"][::std::mem::size_of::<cc_string_>() - 16usize];
548    ["Alignment of cc_string_"][::std::mem::align_of::<cc_string_>() - 8usize];
549    ["Offset of field: cc_string_::buffer"][::std::mem::offset_of!(cc_string_, buffer) - 0usize];
550    ["Offset of field: cc_string_::length"][::std::mem::offset_of!(cc_string_, length) - 8usize];
551    ["Offset of field: cc_string_::capacity"]
552        [::std::mem::offset_of!(cc_string_, capacity) - 10usize];
553};
554pub type cc_string = cc_string_;
555pub type GfxResourceID = *mut ::std::os::raw::c_void;
556#[repr(C)]
557#[derive(Debug, PartialEq)]
558pub struct Texture {
559    pub ID: GfxResourceID,
560    pub x: ::std::os::raw::c_short,
561    pub y: ::std::os::raw::c_short,
562    pub width: cc_uint16,
563    pub height: cc_uint16,
564    pub uv: TextureRec,
565}
566#[allow(clippy::unnecessary_operation, clippy::identity_op)]
567const _: () = {
568    ["Size of Texture"][::std::mem::size_of::<Texture>() - 32usize];
569    ["Alignment of Texture"][::std::mem::align_of::<Texture>() - 8usize];
570    ["Offset of field: Texture::ID"][::std::mem::offset_of!(Texture, ID) - 0usize];
571    ["Offset of field: Texture::x"][::std::mem::offset_of!(Texture, x) - 8usize];
572    ["Offset of field: Texture::y"][::std::mem::offset_of!(Texture, y) - 10usize];
573    ["Offset of field: Texture::width"][::std::mem::offset_of!(Texture, width) - 12usize];
574    ["Offset of field: Texture::height"][::std::mem::offset_of!(Texture, height) - 14usize];
575    ["Offset of field: Texture::uv"][::std::mem::offset_of!(Texture, uv) - 16usize];
576};
577#[repr(C)]
578#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
579pub struct IGameComponent {
580    pub Init: ::std::option::Option<unsafe extern "C" fn()>,
581    pub Free: ::std::option::Option<unsafe extern "C" fn()>,
582    pub Reset: ::std::option::Option<unsafe extern "C" fn()>,
583    pub OnNewMap: ::std::option::Option<unsafe extern "C" fn()>,
584    pub OnNewMapLoaded: ::std::option::Option<unsafe extern "C" fn()>,
585    pub next: *mut IGameComponent,
586}
587#[allow(clippy::unnecessary_operation, clippy::identity_op)]
588const _: () = {
589    ["Size of IGameComponent"][::std::mem::size_of::<IGameComponent>() - 48usize];
590    ["Alignment of IGameComponent"][::std::mem::align_of::<IGameComponent>() - 8usize];
591    ["Offset of field: IGameComponent::Init"]
592        [::std::mem::offset_of!(IGameComponent, Init) - 0usize];
593    ["Offset of field: IGameComponent::Free"]
594        [::std::mem::offset_of!(IGameComponent, Free) - 8usize];
595    ["Offset of field: IGameComponent::Reset"]
596        [::std::mem::offset_of!(IGameComponent, Reset) - 16usize];
597    ["Offset of field: IGameComponent::OnNewMap"]
598        [::std::mem::offset_of!(IGameComponent, OnNewMap) - 24usize];
599    ["Offset of field: IGameComponent::OnNewMapLoaded"]
600        [::std::mem::offset_of!(IGameComponent, OnNewMapLoaded) - 32usize];
601    ["Offset of field: IGameComponent::next"]
602        [::std::mem::offset_of!(IGameComponent, next) - 40usize];
603};
604#[repr(C)]
605#[derive(Debug, Copy, Clone)]
606pub struct AudioContext {
607    _unused: [u8; 0],
608}
609#[repr(C)]
610#[derive(Copy, Clone)]
611pub union AudioChunkMeta {
612    pub ptr: *mut ::std::os::raw::c_void,
613    pub val: cc_uintptr,
614}
615#[allow(clippy::unnecessary_operation, clippy::identity_op)]
616const _: () = {
617    ["Size of AudioChunkMeta"][::std::mem::size_of::<AudioChunkMeta>() - 8usize];
618    ["Alignment of AudioChunkMeta"][::std::mem::align_of::<AudioChunkMeta>() - 8usize];
619    ["Offset of field: AudioChunkMeta::ptr"][::std::mem::offset_of!(AudioChunkMeta, ptr) - 0usize];
620    ["Offset of field: AudioChunkMeta::val"][::std::mem::offset_of!(AudioChunkMeta, val) - 0usize];
621};
622#[repr(C)]
623#[derive(Copy, Clone)]
624pub struct AudioChunk {
625    pub data: *mut ::std::os::raw::c_void,
626    pub size: cc_uint32,
627    pub meta: AudioChunkMeta,
628}
629#[allow(clippy::unnecessary_operation, clippy::identity_op)]
630const _: () = {
631    ["Size of AudioChunk"][::std::mem::size_of::<AudioChunk>() - 24usize];
632    ["Alignment of AudioChunk"][::std::mem::align_of::<AudioChunk>() - 8usize];
633    ["Offset of field: AudioChunk::data"][::std::mem::offset_of!(AudioChunk, data) - 0usize];
634    ["Offset of field: AudioChunk::size"][::std::mem::offset_of!(AudioChunk, size) - 8usize];
635    ["Offset of field: AudioChunk::meta"][::std::mem::offset_of!(AudioChunk, meta) - 16usize];
636};
637#[repr(C)]
638#[derive(Copy, Clone)]
639pub struct AudioData {
640    pub chunk: AudioChunk,
641    pub channels: ::std::os::raw::c_int,
642    pub sampleRate: ::std::os::raw::c_int,
643    pub volume: ::std::os::raw::c_int,
644    pub rate: ::std::os::raw::c_int,
645}
646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
647const _: () = {
648    ["Size of AudioData"][::std::mem::size_of::<AudioData>() - 40usize];
649    ["Alignment of AudioData"][::std::mem::align_of::<AudioData>() - 8usize];
650    ["Offset of field: AudioData::chunk"][::std::mem::offset_of!(AudioData, chunk) - 0usize];
651    ["Offset of field: AudioData::channels"][::std::mem::offset_of!(AudioData, channels) - 24usize];
652    ["Offset of field: AudioData::sampleRate"]
653        [::std::mem::offset_of!(AudioData, sampleRate) - 28usize];
654    ["Offset of field: AudioData::volume"][::std::mem::offset_of!(AudioData, volume) - 32usize];
655    ["Offset of field: AudioData::rate"][::std::mem::offset_of!(AudioData, rate) - 36usize];
656};
657pub type BitmapCol = cc_uint32;
658#[repr(C)]
659#[derive(Debug, Hash, PartialEq, Eq)]
660pub struct Bitmap {
661    pub scan0: *mut BitmapCol,
662    pub width: ::std::os::raw::c_int,
663    pub height: ::std::os::raw::c_int,
664}
665#[allow(clippy::unnecessary_operation, clippy::identity_op)]
666const _: () = {
667    ["Size of Bitmap"][::std::mem::size_of::<Bitmap>() - 16usize];
668    ["Alignment of Bitmap"][::std::mem::align_of::<Bitmap>() - 8usize];
669    ["Offset of field: Bitmap::scan0"][::std::mem::offset_of!(Bitmap, scan0) - 0usize];
670    ["Offset of field: Bitmap::width"][::std::mem::offset_of!(Bitmap, width) - 8usize];
671    ["Offset of field: Bitmap::height"][::std::mem::offset_of!(Bitmap, height) - 12usize];
672};
673unsafe extern "C" {
674    pub fn Bitmap_Scale(
675        dst: *mut Bitmap,
676        src: *mut Bitmap,
677        srcX: ::std::os::raw::c_int,
678        srcY: ::std::os::raw::c_int,
679        srcWidth: ::std::os::raw::c_int,
680        srcHeight: ::std::os::raw::c_int,
681    );
682}
683pub type Png_RowGetter = ::std::option::Option<
684    unsafe extern "C" fn(
685        bmp: *mut Bitmap,
686        row: ::std::os::raw::c_int,
687        ctx: *mut ::std::os::raw::c_void,
688    ) -> *mut BitmapCol,
689>;
690unsafe extern "C" {
691    pub fn Png_Decode(bmp: *mut Bitmap, stream: *mut Stream) -> cc_result;
692}
693pub type PackedCol = cc_uint32;
694unsafe extern "C" {
695    pub fn PackedCol_Scale(value: PackedCol, t: f32) -> PackedCol;
696}
697unsafe extern "C" {
698    pub fn PackedCol_Lerp(a: PackedCol, b: PackedCol, t: f32) -> PackedCol;
699}
700unsafe extern "C" {
701    pub fn PackedCol_Tint(a: PackedCol, b: PackedCol) -> PackedCol;
702}
703unsafe extern "C" {
704    pub fn PackedCol_ScreenBlend(a: PackedCol, b: PackedCol) -> PackedCol;
705}
706pub const FACE_CONSTS_FACE_XMIN: FACE_CONSTS = 0;
707pub const FACE_CONSTS_FACE_BIT_XMIN: FACE_CONSTS = 1;
708pub const FACE_CONSTS_FACE_XMAX: FACE_CONSTS = 1;
709pub const FACE_CONSTS_FACE_BIT_XMAX: FACE_CONSTS = 2;
710pub const FACE_CONSTS_FACE_ZMIN: FACE_CONSTS = 2;
711pub const FACE_CONSTS_FACE_BIT_ZMIN: FACE_CONSTS = 4;
712pub const FACE_CONSTS_FACE_ZMAX: FACE_CONSTS = 3;
713pub const FACE_CONSTS_FACE_BIT_ZMAX: FACE_CONSTS = 8;
714pub const FACE_CONSTS_FACE_YMIN: FACE_CONSTS = 4;
715pub const FACE_CONSTS_FACE_BIT_YMIN: FACE_CONSTS = 16;
716pub const FACE_CONSTS_FACE_YMAX: FACE_CONSTS = 5;
717pub const FACE_CONSTS_FACE_BIT_YMAX: FACE_CONSTS = 32;
718pub const FACE_CONSTS_FACE_COUNT: FACE_CONSTS = 6;
719pub type FACE_CONSTS = ::std::os::raw::c_int;
720pub const SKIN_TYPE_SKIN_64x32: SKIN_TYPE = 0;
721pub const SKIN_TYPE_SKIN_64x64: SKIN_TYPE = 1;
722pub const SKIN_TYPE_SKIN_64x64_SLIM: SKIN_TYPE = 2;
723pub const SKIN_TYPE_SKIN_INVALID: SKIN_TYPE = 240;
724pub type SKIN_TYPE = ::std::os::raw::c_int;
725#[repr(C)]
726#[derive(Debug, Copy, Clone, PartialEq)]
727pub struct Vec2_ {
728    pub x: f32,
729    pub y: f32,
730}
731#[allow(clippy::unnecessary_operation, clippy::identity_op)]
732const _: () = {
733    ["Size of Vec2_"][::std::mem::size_of::<Vec2_>() - 8usize];
734    ["Alignment of Vec2_"][::std::mem::align_of::<Vec2_>() - 4usize];
735    ["Offset of field: Vec2_::x"][::std::mem::offset_of!(Vec2_, x) - 0usize];
736    ["Offset of field: Vec2_::y"][::std::mem::offset_of!(Vec2_, y) - 4usize];
737};
738pub type Vec2 = Vec2_;
739#[repr(C)]
740#[derive(Debug, Copy, Clone, PartialEq)]
741pub struct Vec3_ {
742    pub x: f32,
743    pub y: f32,
744    pub z: f32,
745}
746#[allow(clippy::unnecessary_operation, clippy::identity_op)]
747const _: () = {
748    ["Size of Vec3_"][::std::mem::size_of::<Vec3_>() - 12usize];
749    ["Alignment of Vec3_"][::std::mem::align_of::<Vec3_>() - 4usize];
750    ["Offset of field: Vec3_::x"][::std::mem::offset_of!(Vec3_, x) - 0usize];
751    ["Offset of field: Vec3_::y"][::std::mem::offset_of!(Vec3_, y) - 4usize];
752    ["Offset of field: Vec3_::z"][::std::mem::offset_of!(Vec3_, z) - 8usize];
753};
754pub type Vec3 = Vec3_;
755#[repr(C)]
756#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
757pub struct IVec3_ {
758    pub x: ::std::os::raw::c_int,
759    pub y: ::std::os::raw::c_int,
760    pub z: ::std::os::raw::c_int,
761}
762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
763const _: () = {
764    ["Size of IVec3_"][::std::mem::size_of::<IVec3_>() - 12usize];
765    ["Alignment of IVec3_"][::std::mem::align_of::<IVec3_>() - 4usize];
766    ["Offset of field: IVec3_::x"][::std::mem::offset_of!(IVec3_, x) - 0usize];
767    ["Offset of field: IVec3_::y"][::std::mem::offset_of!(IVec3_, y) - 4usize];
768    ["Offset of field: IVec3_::z"][::std::mem::offset_of!(IVec3_, z) - 8usize];
769};
770pub type IVec3 = IVec3_;
771#[repr(C)]
772#[derive(Debug, Copy, Clone, PartialEq)]
773pub struct Vec4 {
774    pub x: f32,
775    pub y: f32,
776    pub z: f32,
777    pub w: f32,
778}
779#[allow(clippy::unnecessary_operation, clippy::identity_op)]
780const _: () = {
781    ["Size of Vec4"][::std::mem::size_of::<Vec4>() - 16usize];
782    ["Alignment of Vec4"][::std::mem::align_of::<Vec4>() - 4usize];
783    ["Offset of field: Vec4::x"][::std::mem::offset_of!(Vec4, x) - 0usize];
784    ["Offset of field: Vec4::y"][::std::mem::offset_of!(Vec4, y) - 4usize];
785    ["Offset of field: Vec4::z"][::std::mem::offset_of!(Vec4, z) - 8usize];
786    ["Offset of field: Vec4::w"][::std::mem::offset_of!(Vec4, w) - 12usize];
787};
788#[repr(C)]
789#[derive(Debug, Copy, Clone, PartialEq)]
790pub struct Matrix {
791    pub row1: Vec4,
792    pub row2: Vec4,
793    pub row3: Vec4,
794    pub row4: Vec4,
795}
796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
797const _: () = {
798    ["Size of Matrix"][::std::mem::size_of::<Matrix>() - 64usize];
799    ["Alignment of Matrix"][::std::mem::align_of::<Matrix>() - 4usize];
800    ["Offset of field: Matrix::row1"][::std::mem::offset_of!(Matrix, row1) - 0usize];
801    ["Offset of field: Matrix::row2"][::std::mem::offset_of!(Matrix, row2) - 16usize];
802    ["Offset of field: Matrix::row3"][::std::mem::offset_of!(Matrix, row3) - 32usize];
803    ["Offset of field: Matrix::row4"][::std::mem::offset_of!(Matrix, row4) - 48usize];
804};
805unsafe extern "C" {
806    pub fn Matrix_RotateX(result: *mut Matrix, angle: f32);
807}
808unsafe extern "C" {
809    pub fn Matrix_RotateY(result: *mut Matrix, angle: f32);
810}
811unsafe extern "C" {
812    pub fn Matrix_RotateZ(result: *mut Matrix, angle: f32);
813}
814unsafe extern "C" {
815    pub fn Matrix_Translate(result: *mut Matrix, x: f32, y: f32, z: f32);
816}
817unsafe extern "C" {
818    pub fn Matrix_Scale(result: *mut Matrix, x: f32, y: f32, z: f32);
819}
820unsafe extern "C" {
821    pub fn Matrix_Mul(result: *mut Matrix, left: *const Matrix, right: *const Matrix);
822}
823pub const BLOCKID_BLOCK_AIR: BLOCKID = 0;
824pub const BLOCKID_BLOCK_STONE: BLOCKID = 1;
825pub const BLOCKID_BLOCK_GRASS: BLOCKID = 2;
826pub const BLOCKID_BLOCK_DIRT: BLOCKID = 3;
827pub const BLOCKID_BLOCK_COBBLE: BLOCKID = 4;
828pub const BLOCKID_BLOCK_WOOD: BLOCKID = 5;
829pub const BLOCKID_BLOCK_SAPLING: BLOCKID = 6;
830pub const BLOCKID_BLOCK_BEDROCK: BLOCKID = 7;
831pub const BLOCKID_BLOCK_WATER: BLOCKID = 8;
832pub const BLOCKID_BLOCK_STILL_WATER: BLOCKID = 9;
833pub const BLOCKID_BLOCK_LAVA: BLOCKID = 10;
834pub const BLOCKID_BLOCK_STILL_LAVA: BLOCKID = 11;
835pub const BLOCKID_BLOCK_SAND: BLOCKID = 12;
836pub const BLOCKID_BLOCK_GRAVEL: BLOCKID = 13;
837pub const BLOCKID_BLOCK_GOLD_ORE: BLOCKID = 14;
838pub const BLOCKID_BLOCK_IRON_ORE: BLOCKID = 15;
839pub const BLOCKID_BLOCK_COAL_ORE: BLOCKID = 16;
840pub const BLOCKID_BLOCK_LOG: BLOCKID = 17;
841pub const BLOCKID_BLOCK_LEAVES: BLOCKID = 18;
842pub const BLOCKID_BLOCK_SPONGE: BLOCKID = 19;
843pub const BLOCKID_BLOCK_GLASS: BLOCKID = 20;
844pub const BLOCKID_BLOCK_RED: BLOCKID = 21;
845pub const BLOCKID_BLOCK_ORANGE: BLOCKID = 22;
846pub const BLOCKID_BLOCK_YELLOW: BLOCKID = 23;
847pub const BLOCKID_BLOCK_LIME: BLOCKID = 24;
848pub const BLOCKID_BLOCK_GREEN: BLOCKID = 25;
849pub const BLOCKID_BLOCK_TEAL: BLOCKID = 26;
850pub const BLOCKID_BLOCK_AQUA: BLOCKID = 27;
851pub const BLOCKID_BLOCK_CYAN: BLOCKID = 28;
852pub const BLOCKID_BLOCK_BLUE: BLOCKID = 29;
853pub const BLOCKID_BLOCK_INDIGO: BLOCKID = 30;
854pub const BLOCKID_BLOCK_VIOLET: BLOCKID = 31;
855pub const BLOCKID_BLOCK_MAGENTA: BLOCKID = 32;
856pub const BLOCKID_BLOCK_PINK: BLOCKID = 33;
857pub const BLOCKID_BLOCK_BLACK: BLOCKID = 34;
858pub const BLOCKID_BLOCK_GRAY: BLOCKID = 35;
859pub const BLOCKID_BLOCK_WHITE: BLOCKID = 36;
860pub const BLOCKID_BLOCK_DANDELION: BLOCKID = 37;
861pub const BLOCKID_BLOCK_ROSE: BLOCKID = 38;
862pub const BLOCKID_BLOCK_BROWN_SHROOM: BLOCKID = 39;
863pub const BLOCKID_BLOCK_RED_SHROOM: BLOCKID = 40;
864pub const BLOCKID_BLOCK_GOLD: BLOCKID = 41;
865pub const BLOCKID_BLOCK_IRON: BLOCKID = 42;
866pub const BLOCKID_BLOCK_DOUBLE_SLAB: BLOCKID = 43;
867pub const BLOCKID_BLOCK_SLAB: BLOCKID = 44;
868pub const BLOCKID_BLOCK_BRICK: BLOCKID = 45;
869pub const BLOCKID_BLOCK_TNT: BLOCKID = 46;
870pub const BLOCKID_BLOCK_BOOKSHELF: BLOCKID = 47;
871pub const BLOCKID_BLOCK_MOSSY_ROCKS: BLOCKID = 48;
872pub const BLOCKID_BLOCK_OBSIDIAN: BLOCKID = 49;
873pub const BLOCKID_BLOCK_COBBLE_SLAB: BLOCKID = 50;
874pub const BLOCKID_BLOCK_ROPE: BLOCKID = 51;
875pub const BLOCKID_BLOCK_SANDSTONE: BLOCKID = 52;
876pub const BLOCKID_BLOCK_SNOW: BLOCKID = 53;
877pub const BLOCKID_BLOCK_FIRE: BLOCKID = 54;
878pub const BLOCKID_BLOCK_LIGHT_PINK: BLOCKID = 55;
879pub const BLOCKID_BLOCK_FOREST_GREEN: BLOCKID = 56;
880pub const BLOCKID_BLOCK_BROWN: BLOCKID = 57;
881pub const BLOCKID_BLOCK_DEEP_BLUE: BLOCKID = 58;
882pub const BLOCKID_BLOCK_TURQUOISE: BLOCKID = 59;
883pub const BLOCKID_BLOCK_ICE: BLOCKID = 60;
884pub const BLOCKID_BLOCK_CERAMIC_TILE: BLOCKID = 61;
885pub const BLOCKID_BLOCK_MAGMA: BLOCKID = 62;
886pub const BLOCKID_BLOCK_PILLAR: BLOCKID = 63;
887pub const BLOCKID_BLOCK_CRATE: BLOCKID = 64;
888pub const BLOCKID_BLOCK_STONE_BRICK: BLOCKID = 65;
889pub const BLOCKID_BLOCK_MAX_ORIGINAL: BLOCKID = 49;
890pub const BLOCKID_BLOCK_MAX_CPE: BLOCKID = 65;
891pub const BLOCKID_BLOCK_MAX_DEFINED: BLOCKID = 767;
892pub const BLOCKID_BLOCK_COUNT: BLOCKID = 768;
893pub type BLOCKID = ::std::os::raw::c_int;
894pub const SoundType_SOUND_NONE: SoundType = 0;
895pub const SoundType_SOUND_WOOD: SoundType = 1;
896pub const SoundType_SOUND_GRAVEL: SoundType = 2;
897pub const SoundType_SOUND_GRASS: SoundType = 3;
898pub const SoundType_SOUND_STONE: SoundType = 4;
899pub const SoundType_SOUND_METAL: SoundType = 5;
900pub const SoundType_SOUND_GLASS: SoundType = 6;
901pub const SoundType_SOUND_CLOTH: SoundType = 7;
902pub const SoundType_SOUND_SAND: SoundType = 8;
903pub const SoundType_SOUND_SNOW: SoundType = 9;
904pub const SoundType_SOUND_COUNT: SoundType = 10;
905pub type SoundType = ::std::os::raw::c_int;
906pub const DrawType_DRAW_OPAQUE: DrawType = 0;
907pub const DrawType_DRAW_TRANSPARENT: DrawType = 1;
908pub const DrawType_DRAW_TRANSPARENT_THICK: DrawType = 2;
909pub const DrawType_DRAW_TRANSLUCENT: DrawType = 3;
910pub const DrawType_DRAW_GAS: DrawType = 4;
911pub const DrawType_DRAW_SPRITE: DrawType = 5;
912pub type DrawType = ::std::os::raw::c_int;
913pub const CollideType_COLLIDE_NONE: CollideType = 0;
914pub const CollideType_COLLIDE_LIQUID: CollideType = 1;
915pub const CollideType_COLLIDE_SOLID: CollideType = 2;
916pub const CollideType_COLLIDE_ICE: CollideType = 3;
917pub const CollideType_COLLIDE_SLIPPERY_ICE: CollideType = 4;
918pub const CollideType_COLLIDE_WATER: CollideType = 5;
919pub const CollideType_COLLIDE_LAVA: CollideType = 6;
920pub const CollideType_COLLIDE_CLIMB: CollideType = 7;
921pub type CollideType = ::std::os::raw::c_int;
922#[repr(C)]
923#[derive(Debug, Copy, Clone, PartialEq)]
924pub struct _BlockLists {
925    pub IsLiquid: [cc_bool; 768usize],
926    pub BlocksLight: [cc_bool; 768usize],
927    pub Brightness: [cc_uint8; 768usize],
928    pub FogCol: [PackedCol; 768usize],
929    pub FogDensity: [f32; 768usize],
930    pub Collide: [cc_uint8; 768usize],
931    pub ExtendedCollide: [cc_uint8; 768usize],
932    pub SpeedMultiplier: [f32; 768usize],
933    pub LightOffset: [cc_uint8; 768usize],
934    pub Draw: [cc_uint8; 768usize],
935    pub DigSounds: [cc_uint8; 768usize],
936    pub StepSounds: [cc_uint8; 768usize],
937    pub Tinted: [cc_bool; 768usize],
938    pub FullOpaque: [cc_bool; 768usize],
939    pub SpriteOffset: [cc_uint8; 768usize],
940    pub MinBB: [Vec3; 768usize],
941    pub MaxBB: [Vec3; 768usize],
942    pub RenderMinBB: [Vec3; 768usize],
943    pub RenderMaxBB: [Vec3; 768usize],
944    pub Textures: [TextureLoc; 4608usize],
945    pub CanPlace: [cc_bool; 768usize],
946    pub CanDelete: [cc_bool; 768usize],
947    pub Hidden: [cc_uint8; 589824usize],
948    pub CanStretch: [cc_uint8; 768usize],
949    pub ParticleGravity: [f32; 768usize],
950}
951#[allow(clippy::unnecessary_operation, clippy::identity_op)]
952const _: () = {
953    ["Size of _BlockLists"][::std::mem::size_of::<_BlockLists>() - 659712usize];
954    ["Alignment of _BlockLists"][::std::mem::align_of::<_BlockLists>() - 4usize];
955    ["Offset of field: _BlockLists::IsLiquid"]
956        [::std::mem::offset_of!(_BlockLists, IsLiquid) - 0usize];
957    ["Offset of field: _BlockLists::BlocksLight"]
958        [::std::mem::offset_of!(_BlockLists, BlocksLight) - 768usize];
959    ["Offset of field: _BlockLists::Brightness"]
960        [::std::mem::offset_of!(_BlockLists, Brightness) - 1536usize];
961    ["Offset of field: _BlockLists::FogCol"]
962        [::std::mem::offset_of!(_BlockLists, FogCol) - 2304usize];
963    ["Offset of field: _BlockLists::FogDensity"]
964        [::std::mem::offset_of!(_BlockLists, FogDensity) - 5376usize];
965    ["Offset of field: _BlockLists::Collide"]
966        [::std::mem::offset_of!(_BlockLists, Collide) - 8448usize];
967    ["Offset of field: _BlockLists::ExtendedCollide"]
968        [::std::mem::offset_of!(_BlockLists, ExtendedCollide) - 9216usize];
969    ["Offset of field: _BlockLists::SpeedMultiplier"]
970        [::std::mem::offset_of!(_BlockLists, SpeedMultiplier) - 9984usize];
971    ["Offset of field: _BlockLists::LightOffset"]
972        [::std::mem::offset_of!(_BlockLists, LightOffset) - 13056usize];
973    ["Offset of field: _BlockLists::Draw"][::std::mem::offset_of!(_BlockLists, Draw) - 13824usize];
974    ["Offset of field: _BlockLists::DigSounds"]
975        [::std::mem::offset_of!(_BlockLists, DigSounds) - 14592usize];
976    ["Offset of field: _BlockLists::StepSounds"]
977        [::std::mem::offset_of!(_BlockLists, StepSounds) - 15360usize];
978    ["Offset of field: _BlockLists::Tinted"]
979        [::std::mem::offset_of!(_BlockLists, Tinted) - 16128usize];
980    ["Offset of field: _BlockLists::FullOpaque"]
981        [::std::mem::offset_of!(_BlockLists, FullOpaque) - 16896usize];
982    ["Offset of field: _BlockLists::SpriteOffset"]
983        [::std::mem::offset_of!(_BlockLists, SpriteOffset) - 17664usize];
984    ["Offset of field: _BlockLists::MinBB"]
985        [::std::mem::offset_of!(_BlockLists, MinBB) - 18432usize];
986    ["Offset of field: _BlockLists::MaxBB"]
987        [::std::mem::offset_of!(_BlockLists, MaxBB) - 27648usize];
988    ["Offset of field: _BlockLists::RenderMinBB"]
989        [::std::mem::offset_of!(_BlockLists, RenderMinBB) - 36864usize];
990    ["Offset of field: _BlockLists::RenderMaxBB"]
991        [::std::mem::offset_of!(_BlockLists, RenderMaxBB) - 46080usize];
992    ["Offset of field: _BlockLists::Textures"]
993        [::std::mem::offset_of!(_BlockLists, Textures) - 55296usize];
994    ["Offset of field: _BlockLists::CanPlace"]
995        [::std::mem::offset_of!(_BlockLists, CanPlace) - 64512usize];
996    ["Offset of field: _BlockLists::CanDelete"]
997        [::std::mem::offset_of!(_BlockLists, CanDelete) - 65280usize];
998    ["Offset of field: _BlockLists::Hidden"]
999        [::std::mem::offset_of!(_BlockLists, Hidden) - 66048usize];
1000    ["Offset of field: _BlockLists::CanStretch"]
1001        [::std::mem::offset_of!(_BlockLists, CanStretch) - 655872usize];
1002    ["Offset of field: _BlockLists::ParticleGravity"]
1003        [::std::mem::offset_of!(_BlockLists, ParticleGravity) - 656640usize];
1004};
1005#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
1006    pub static mut Blocks: _BlockLists;
1007}
1008unsafe extern "C" {
1009    pub fn Block_UNSAFE_GetName(block: BlockID) -> cc_string;
1010}
1011pub type FP_Block_UNSAFE_GetName =
1012    ::std::option::Option<unsafe extern "C" fn(block: BlockID) -> cc_string>;
1013unsafe extern "C" {
1014    pub fn Block_FindID(name: *const cc_string) -> ::std::os::raw::c_int;
1015}
1016unsafe extern "C" {
1017    pub fn Block_Parse(name: *const cc_string) -> ::std::os::raw::c_int;
1018}
1019pub type PhysicsHandler =
1020    ::std::option::Option<unsafe extern "C" fn(index: ::std::os::raw::c_int, block: BlockID)>;
1021#[repr(C)]
1022#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1023pub struct Physics_ {
1024    pub Enabled: cc_bool,
1025    pub OnActivate: [PhysicsHandler; 256usize],
1026    pub OnRandomTick: [PhysicsHandler; 256usize],
1027    pub OnPlace: [PhysicsHandler; 256usize],
1028    pub OnDelete: [PhysicsHandler; 256usize],
1029}
1030#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1031const _: () = {
1032    ["Size of Physics_"][::std::mem::size_of::<Physics_>() - 8200usize];
1033    ["Alignment of Physics_"][::std::mem::align_of::<Physics_>() - 8usize];
1034    ["Offset of field: Physics_::Enabled"][::std::mem::offset_of!(Physics_, Enabled) - 0usize];
1035    ["Offset of field: Physics_::OnActivate"]
1036        [::std::mem::offset_of!(Physics_, OnActivate) - 8usize];
1037    ["Offset of field: Physics_::OnRandomTick"]
1038        [::std::mem::offset_of!(Physics_, OnRandomTick) - 2056usize];
1039    ["Offset of field: Physics_::OnPlace"][::std::mem::offset_of!(Physics_, OnPlace) - 4104usize];
1040    ["Offset of field: Physics_::OnDelete"][::std::mem::offset_of!(Physics_, OnDelete) - 6152usize];
1041};
1042#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
1043    pub static mut Physics: Physics_;
1044}
1045#[repr(C)]
1046#[derive(Debug, Copy, Clone, PartialEq)]
1047pub struct _CameraData {
1048    pub Sensitivity: ::std::os::raw::c_int,
1049    pub Smooth: cc_bool,
1050    pub Clipping: cc_bool,
1051    pub Invert: cc_bool,
1052    pub TiltM: Matrix,
1053    pub BobbingVer: f32,
1054    pub BobbingHor: f32,
1055    pub CurrentPos: Vec3,
1056    pub Active: *mut Camera,
1057    pub Mass: f32,
1058    pub Fov: ::std::os::raw::c_int,
1059    pub DefaultFov: ::std::os::raw::c_int,
1060    pub ZoomFov: ::std::os::raw::c_int,
1061    pub TiltPitch: f32,
1062}
1063#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1064const _: () = {
1065    ["Size of _CameraData"][::std::mem::size_of::<_CameraData>() - 128usize];
1066    ["Alignment of _CameraData"][::std::mem::align_of::<_CameraData>() - 8usize];
1067    ["Offset of field: _CameraData::Sensitivity"]
1068        [::std::mem::offset_of!(_CameraData, Sensitivity) - 0usize];
1069    ["Offset of field: _CameraData::Smooth"][::std::mem::offset_of!(_CameraData, Smooth) - 4usize];
1070    ["Offset of field: _CameraData::Clipping"]
1071        [::std::mem::offset_of!(_CameraData, Clipping) - 5usize];
1072    ["Offset of field: _CameraData::Invert"][::std::mem::offset_of!(_CameraData, Invert) - 6usize];
1073    ["Offset of field: _CameraData::TiltM"][::std::mem::offset_of!(_CameraData, TiltM) - 8usize];
1074    ["Offset of field: _CameraData::BobbingVer"]
1075        [::std::mem::offset_of!(_CameraData, BobbingVer) - 72usize];
1076    ["Offset of field: _CameraData::BobbingHor"]
1077        [::std::mem::offset_of!(_CameraData, BobbingHor) - 76usize];
1078    ["Offset of field: _CameraData::CurrentPos"]
1079        [::std::mem::offset_of!(_CameraData, CurrentPos) - 80usize];
1080    ["Offset of field: _CameraData::Active"][::std::mem::offset_of!(_CameraData, Active) - 96usize];
1081    ["Offset of field: _CameraData::Mass"][::std::mem::offset_of!(_CameraData, Mass) - 104usize];
1082    ["Offset of field: _CameraData::Fov"][::std::mem::offset_of!(_CameraData, Fov) - 108usize];
1083    ["Offset of field: _CameraData::DefaultFov"]
1084        [::std::mem::offset_of!(_CameraData, DefaultFov) - 112usize];
1085    ["Offset of field: _CameraData::ZoomFov"]
1086        [::std::mem::offset_of!(_CameraData, ZoomFov) - 116usize];
1087    ["Offset of field: _CameraData::TiltPitch"]
1088        [::std::mem::offset_of!(_CameraData, TiltPitch) - 120usize];
1089};
1090#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
1091    pub static mut Camera: _CameraData;
1092}
1093#[repr(C)]
1094#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1095pub struct Camera {
1096    pub isThirdPerson: cc_bool,
1097    pub GetProjection: ::std::option::Option<unsafe extern "C" fn(proj: *mut Matrix)>,
1098    pub GetView: ::std::option::Option<unsafe extern "C" fn(view: *mut Matrix)>,
1099    pub GetOrientation: ::std::option::Option<unsafe extern "C" fn() -> Vec2>,
1100    pub GetPosition: ::std::option::Option<unsafe extern "C" fn(t: f32) -> Vec3>,
1101    pub UpdateMouse: ::std::option::Option<unsafe extern "C" fn(p: *mut LocalPlayer, delta: f32)>,
1102    pub OnRawMovement: ::std::option::Option<
1103        unsafe extern "C" fn(deltaX: f32, deltaY: f32, deviceIndex: ::std::os::raw::c_int),
1104    >,
1105    pub AcquireFocus: ::std::option::Option<unsafe extern "C" fn()>,
1106    pub LoseFocus: ::std::option::Option<unsafe extern "C" fn()>,
1107    pub GetPickedBlock: ::std::option::Option<unsafe extern "C" fn(t: *mut RayTracer)>,
1108    pub Zoom: ::std::option::Option<unsafe extern "C" fn(amount: f32) -> cc_bool>,
1109    pub next: *mut Camera,
1110}
1111#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1112const _: () = {
1113    ["Size of Camera"][::std::mem::size_of::<Camera>() - 96usize];
1114    ["Alignment of Camera"][::std::mem::align_of::<Camera>() - 8usize];
1115    ["Offset of field: Camera::isThirdPerson"]
1116        [::std::mem::offset_of!(Camera, isThirdPerson) - 0usize];
1117    ["Offset of field: Camera::GetProjection"]
1118        [::std::mem::offset_of!(Camera, GetProjection) - 8usize];
1119    ["Offset of field: Camera::GetView"][::std::mem::offset_of!(Camera, GetView) - 16usize];
1120    ["Offset of field: Camera::GetOrientation"]
1121        [::std::mem::offset_of!(Camera, GetOrientation) - 24usize];
1122    ["Offset of field: Camera::GetPosition"][::std::mem::offset_of!(Camera, GetPosition) - 32usize];
1123    ["Offset of field: Camera::UpdateMouse"][::std::mem::offset_of!(Camera, UpdateMouse) - 40usize];
1124    ["Offset of field: Camera::OnRawMovement"]
1125        [::std::mem::offset_of!(Camera, OnRawMovement) - 48usize];
1126    ["Offset of field: Camera::AcquireFocus"]
1127        [::std::mem::offset_of!(Camera, AcquireFocus) - 56usize];
1128    ["Offset of field: Camera::LoseFocus"][::std::mem::offset_of!(Camera, LoseFocus) - 64usize];
1129    ["Offset of field: Camera::GetPickedBlock"]
1130        [::std::mem::offset_of!(Camera, GetPickedBlock) - 72usize];
1131    ["Offset of field: Camera::Zoom"][::std::mem::offset_of!(Camera, Zoom) - 80usize];
1132    ["Offset of field: Camera::next"][::std::mem::offset_of!(Camera, next) - 88usize];
1133};
1134unsafe extern "C" {
1135    pub fn Camera_Register(camera: *mut Camera);
1136}
1137pub const MsgType_MSG_TYPE_NORMAL: MsgType = 0;
1138pub const MsgType_MSG_TYPE_STATUS_1: MsgType = 1;
1139pub const MsgType_MSG_TYPE_STATUS_2: MsgType = 2;
1140pub const MsgType_MSG_TYPE_STATUS_3: MsgType = 3;
1141pub const MsgType_MSG_TYPE_BOTTOMRIGHT_1: MsgType = 11;
1142pub const MsgType_MSG_TYPE_BOTTOMRIGHT_2: MsgType = 12;
1143pub const MsgType_MSG_TYPE_BOTTOMRIGHT_3: MsgType = 13;
1144pub const MsgType_MSG_TYPE_ANNOUNCEMENT: MsgType = 100;
1145pub const MsgType_MSG_TYPE_BIGANNOUNCEMENT: MsgType = 101;
1146pub const MsgType_MSG_TYPE_SMALLANNOUNCEMENT: MsgType = 102;
1147pub const MsgType_MSG_TYPE_CLIENTSTATUS_1: MsgType = 256;
1148pub const MsgType_MSG_TYPE_CLIENTSTATUS_2: MsgType = 257;
1149pub const MsgType_MSG_TYPE_EXTRASTATUS_1: MsgType = 360;
1150pub const MsgType_MSG_TYPE_EXTRASTATUS_2: MsgType = 361;
1151pub type MsgType = ::std::os::raw::c_int;
1152#[repr(C)]
1153#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1154pub struct StringsBuffer {
1155    pub textBuffer: *mut ::std::os::raw::c_char,
1156    pub flagsBuffer: *mut cc_uint32,
1157    pub count: ::std::os::raw::c_int,
1158    pub totalLength: ::std::os::raw::c_int,
1159    pub _textCapacity: ::std::os::raw::c_int,
1160    pub _flagsCapacity: ::std::os::raw::c_int,
1161    pub _defaultBuffer: [::std::os::raw::c_char; 4096usize],
1162    pub _defaultFlags: [cc_uint32; 256usize],
1163    pub _lenShift: ::std::os::raw::c_int,
1164    pub _lenMask: ::std::os::raw::c_int,
1165}
1166#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1167const _: () = {
1168    ["Size of StringsBuffer"][::std::mem::size_of::<StringsBuffer>() - 5160usize];
1169    ["Alignment of StringsBuffer"][::std::mem::align_of::<StringsBuffer>() - 8usize];
1170    ["Offset of field: StringsBuffer::textBuffer"]
1171        [::std::mem::offset_of!(StringsBuffer, textBuffer) - 0usize];
1172    ["Offset of field: StringsBuffer::flagsBuffer"]
1173        [::std::mem::offset_of!(StringsBuffer, flagsBuffer) - 8usize];
1174    ["Offset of field: StringsBuffer::count"]
1175        [::std::mem::offset_of!(StringsBuffer, count) - 16usize];
1176    ["Offset of field: StringsBuffer::totalLength"]
1177        [::std::mem::offset_of!(StringsBuffer, totalLength) - 20usize];
1178    ["Offset of field: StringsBuffer::_textCapacity"]
1179        [::std::mem::offset_of!(StringsBuffer, _textCapacity) - 24usize];
1180    ["Offset of field: StringsBuffer::_flagsCapacity"]
1181        [::std::mem::offset_of!(StringsBuffer, _flagsCapacity) - 28usize];
1182    ["Offset of field: StringsBuffer::_defaultBuffer"]
1183        [::std::mem::offset_of!(StringsBuffer, _defaultBuffer) - 32usize];
1184    ["Offset of field: StringsBuffer::_defaultFlags"]
1185        [::std::mem::offset_of!(StringsBuffer, _defaultFlags) - 4128usize];
1186    ["Offset of field: StringsBuffer::_lenShift"]
1187        [::std::mem::offset_of!(StringsBuffer, _lenShift) - 5152usize];
1188    ["Offset of field: StringsBuffer::_lenMask"]
1189        [::std::mem::offset_of!(StringsBuffer, _lenMask) - 5156usize];
1190};
1191unsafe extern "C" {
1192    pub fn Chat_Send(text: *const cc_string, logUsage: cc_bool);
1193}
1194pub type FP_Chat_Send =
1195    ::std::option::Option<unsafe extern "C" fn(text: *const cc_string, logUsage: cc_bool)>;
1196unsafe extern "C" {
1197    pub fn Chat_Add(text: *const cc_string);
1198}
1199pub type FP_Chat_Add = ::std::option::Option<unsafe extern "C" fn(text: *const cc_string)>;
1200unsafe extern "C" {
1201    pub fn Chat_AddOf(text: *const cc_string, msgType: ::std::os::raw::c_int);
1202}
1203pub type FP_Chat_AddOf = ::std::option::Option<
1204    unsafe extern "C" fn(text: *const cc_string, msgType: ::std::os::raw::c_int),
1205>;
1206unsafe extern "C" {
1207    pub fn Chat_Add1(format: *const ::std::os::raw::c_char, a1: *const ::std::os::raw::c_void);
1208}
1209unsafe extern "C" {
1210    pub fn Chat_Add2(
1211        format: *const ::std::os::raw::c_char,
1212        a1: *const ::std::os::raw::c_void,
1213        a2: *const ::std::os::raw::c_void,
1214    );
1215}
1216unsafe extern "C" {
1217    pub fn Chat_Add3(
1218        format: *const ::std::os::raw::c_char,
1219        a1: *const ::std::os::raw::c_void,
1220        a2: *const ::std::os::raw::c_void,
1221        a3: *const ::std::os::raw::c_void,
1222    );
1223}
1224unsafe extern "C" {
1225    pub fn Chat_Add4(
1226        format: *const ::std::os::raw::c_char,
1227        a1: *const ::std::os::raw::c_void,
1228        a2: *const ::std::os::raw::c_void,
1229        a3: *const ::std::os::raw::c_void,
1230        a4: *const ::std::os::raw::c_void,
1231    );
1232}
1233#[repr(C)]
1234#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1235pub struct ChatCommand {
1236    pub name: *const ::std::os::raw::c_char,
1237    pub Execute: ::std::option::Option<
1238        unsafe extern "C" fn(args: *const cc_string, argsCount: ::std::os::raw::c_int),
1239    >,
1240    pub flags: cc_uint8,
1241    pub help: [*const ::std::os::raw::c_char; 5usize],
1242    pub next: *mut ChatCommand,
1243}
1244#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1245const _: () = {
1246    ["Size of ChatCommand"][::std::mem::size_of::<ChatCommand>() - 72usize];
1247    ["Alignment of ChatCommand"][::std::mem::align_of::<ChatCommand>() - 8usize];
1248    ["Offset of field: ChatCommand::name"][::std::mem::offset_of!(ChatCommand, name) - 0usize];
1249    ["Offset of field: ChatCommand::Execute"]
1250        [::std::mem::offset_of!(ChatCommand, Execute) - 8usize];
1251    ["Offset of field: ChatCommand::flags"][::std::mem::offset_of!(ChatCommand, flags) - 16usize];
1252    ["Offset of field: ChatCommand::help"][::std::mem::offset_of!(ChatCommand, help) - 24usize];
1253    ["Offset of field: ChatCommand::next"][::std::mem::offset_of!(ChatCommand, next) - 64usize];
1254};
1255unsafe extern "C" {
1256    pub fn Commands_Register(cmd: *mut ChatCommand);
1257}
1258pub type FP_Commands_Register = ::std::option::Option<unsafe extern "C" fn(cmd: *mut ChatCommand)>;
1259#[repr(C)]
1260#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1261pub struct GZipHeader {
1262    pub state: cc_uint8,
1263    pub done: cc_bool,
1264    pub partsRead: cc_uint8,
1265    pub flags: ::std::os::raw::c_int,
1266}
1267#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1268const _: () = {
1269    ["Size of GZipHeader"][::std::mem::size_of::<GZipHeader>() - 8usize];
1270    ["Alignment of GZipHeader"][::std::mem::align_of::<GZipHeader>() - 4usize];
1271    ["Offset of field: GZipHeader::state"][::std::mem::offset_of!(GZipHeader, state) - 0usize];
1272    ["Offset of field: GZipHeader::done"][::std::mem::offset_of!(GZipHeader, done) - 1usize];
1273    ["Offset of field: GZipHeader::partsRead"]
1274        [::std::mem::offset_of!(GZipHeader, partsRead) - 2usize];
1275    ["Offset of field: GZipHeader::flags"][::std::mem::offset_of!(GZipHeader, flags) - 4usize];
1276};
1277#[repr(C)]
1278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1279pub struct ZLibHeader {
1280    pub state: cc_uint8,
1281    pub done: cc_bool,
1282}
1283#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1284const _: () = {
1285    ["Size of ZLibHeader"][::std::mem::size_of::<ZLibHeader>() - 2usize];
1286    ["Alignment of ZLibHeader"][::std::mem::align_of::<ZLibHeader>() - 1usize];
1287    ["Offset of field: ZLibHeader::state"][::std::mem::offset_of!(ZLibHeader, state) - 0usize];
1288    ["Offset of field: ZLibHeader::done"][::std::mem::offset_of!(ZLibHeader, done) - 1usize];
1289};
1290#[repr(C)]
1291#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1292pub struct HuffmanTable {
1293    pub fast: [cc_int16; 512usize],
1294    pub firstCodewords: [cc_uint16; 16usize],
1295    pub endCodewords: [cc_uint16; 16usize],
1296    pub firstOffsets: [cc_uint16; 16usize],
1297    pub values: [cc_uint16; 288usize],
1298}
1299#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1300const _: () = {
1301    ["Size of HuffmanTable"][::std::mem::size_of::<HuffmanTable>() - 1696usize];
1302    ["Alignment of HuffmanTable"][::std::mem::align_of::<HuffmanTable>() - 2usize];
1303    ["Offset of field: HuffmanTable::fast"][::std::mem::offset_of!(HuffmanTable, fast) - 0usize];
1304    ["Offset of field: HuffmanTable::firstCodewords"]
1305        [::std::mem::offset_of!(HuffmanTable, firstCodewords) - 1024usize];
1306    ["Offset of field: HuffmanTable::endCodewords"]
1307        [::std::mem::offset_of!(HuffmanTable, endCodewords) - 1056usize];
1308    ["Offset of field: HuffmanTable::firstOffsets"]
1309        [::std::mem::offset_of!(HuffmanTable, firstOffsets) - 1088usize];
1310    ["Offset of field: HuffmanTable::values"]
1311        [::std::mem::offset_of!(HuffmanTable, values) - 1120usize];
1312};
1313#[repr(C)]
1314#[derive(Copy, Clone)]
1315pub struct InflateState {
1316    pub State: cc_uint8,
1317    pub LastBlock: cc_bool,
1318    pub Bits: cc_uint32,
1319    pub NumBits: cc_uint32,
1320    pub NextIn: *mut cc_uint8,
1321    pub AvailIn: cc_uint32,
1322    pub Output: *mut cc_uint8,
1323    pub AvailOut: cc_uint32,
1324    pub Source: *mut Stream,
1325    pub Index: cc_uint32,
1326    pub WindowIndex: cc_uint32,
1327    pub NumCodeLens: cc_uint32,
1328    pub NumLits: cc_uint32,
1329    pub NumDists: cc_uint32,
1330    pub TmpCodeLens: cc_uint32,
1331    pub TmpLit: cc_uint32,
1332    pub TmpDist: cc_uint32,
1333    pub Input: [cc_uint8; 8192usize],
1334    pub Buffer: [cc_uint8; 320usize],
1335    pub Table: InflateState__bindgen_ty_1,
1336    pub TableDists: HuffmanTable,
1337    pub Window: [cc_uint8; 32768usize],
1338    pub result: cc_result,
1339}
1340#[repr(C)]
1341#[derive(Copy, Clone)]
1342pub union InflateState__bindgen_ty_1 {
1343    pub CodeLens: HuffmanTable,
1344    pub Lits: HuffmanTable,
1345}
1346#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1347const _: () = {
1348    ["Size of InflateState__bindgen_ty_1"]
1349        [::std::mem::size_of::<InflateState__bindgen_ty_1>() - 1696usize];
1350    ["Alignment of InflateState__bindgen_ty_1"]
1351        [::std::mem::align_of::<InflateState__bindgen_ty_1>() - 2usize];
1352    ["Offset of field: InflateState__bindgen_ty_1::CodeLens"]
1353        [::std::mem::offset_of!(InflateState__bindgen_ty_1, CodeLens) - 0usize];
1354    ["Offset of field: InflateState__bindgen_ty_1::Lits"]
1355        [::std::mem::offset_of!(InflateState__bindgen_ty_1, Lits) - 0usize];
1356};
1357#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1358const _: () = {
1359    ["Size of InflateState"][::std::mem::size_of::<InflateState>() - 44768usize];
1360    ["Alignment of InflateState"][::std::mem::align_of::<InflateState>() - 8usize];
1361    ["Offset of field: InflateState::State"][::std::mem::offset_of!(InflateState, State) - 0usize];
1362    ["Offset of field: InflateState::LastBlock"]
1363        [::std::mem::offset_of!(InflateState, LastBlock) - 1usize];
1364    ["Offset of field: InflateState::Bits"][::std::mem::offset_of!(InflateState, Bits) - 4usize];
1365    ["Offset of field: InflateState::NumBits"]
1366        [::std::mem::offset_of!(InflateState, NumBits) - 8usize];
1367    ["Offset of field: InflateState::NextIn"]
1368        [::std::mem::offset_of!(InflateState, NextIn) - 16usize];
1369    ["Offset of field: InflateState::AvailIn"]
1370        [::std::mem::offset_of!(InflateState, AvailIn) - 24usize];
1371    ["Offset of field: InflateState::Output"]
1372        [::std::mem::offset_of!(InflateState, Output) - 32usize];
1373    ["Offset of field: InflateState::AvailOut"]
1374        [::std::mem::offset_of!(InflateState, AvailOut) - 40usize];
1375    ["Offset of field: InflateState::Source"]
1376        [::std::mem::offset_of!(InflateState, Source) - 48usize];
1377    ["Offset of field: InflateState::Index"][::std::mem::offset_of!(InflateState, Index) - 56usize];
1378    ["Offset of field: InflateState::WindowIndex"]
1379        [::std::mem::offset_of!(InflateState, WindowIndex) - 60usize];
1380    ["Offset of field: InflateState::NumCodeLens"]
1381        [::std::mem::offset_of!(InflateState, NumCodeLens) - 64usize];
1382    ["Offset of field: InflateState::NumLits"]
1383        [::std::mem::offset_of!(InflateState, NumLits) - 68usize];
1384    ["Offset of field: InflateState::NumDists"]
1385        [::std::mem::offset_of!(InflateState, NumDists) - 72usize];
1386    ["Offset of field: InflateState::TmpCodeLens"]
1387        [::std::mem::offset_of!(InflateState, TmpCodeLens) - 76usize];
1388    ["Offset of field: InflateState::TmpLit"]
1389        [::std::mem::offset_of!(InflateState, TmpLit) - 80usize];
1390    ["Offset of field: InflateState::TmpDist"]
1391        [::std::mem::offset_of!(InflateState, TmpDist) - 84usize];
1392    ["Offset of field: InflateState::Input"][::std::mem::offset_of!(InflateState, Input) - 88usize];
1393    ["Offset of field: InflateState::Buffer"]
1394        [::std::mem::offset_of!(InflateState, Buffer) - 8280usize];
1395    ["Offset of field: InflateState::Table"]
1396        [::std::mem::offset_of!(InflateState, Table) - 8600usize];
1397    ["Offset of field: InflateState::TableDists"]
1398        [::std::mem::offset_of!(InflateState, TableDists) - 10296usize];
1399    ["Offset of field: InflateState::Window"]
1400        [::std::mem::offset_of!(InflateState, Window) - 11992usize];
1401    ["Offset of field: InflateState::result"]
1402        [::std::mem::offset_of!(InflateState, result) - 44760usize];
1403};
1404unsafe extern "C" {
1405    pub fn Inflate_Init2(state: *mut InflateState, source: *mut Stream);
1406}
1407unsafe extern "C" {
1408    pub fn Inflate_MakeStream2(
1409        stream: *mut Stream,
1410        state: *mut InflateState,
1411        underlying: *mut Stream,
1412    );
1413}
1414#[repr(C)]
1415#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1416pub struct DeflateState {
1417    pub Bits: cc_uint32,
1418    pub NumBits: cc_uint32,
1419    pub InputPosition: cc_uint32,
1420    pub NextOut: *mut cc_uint8,
1421    pub AvailOut: cc_uint32,
1422    pub Dest: *mut Stream,
1423    pub LitsCodewords: [cc_uint16; 288usize],
1424    pub LitsLens: [cc_uint8; 288usize],
1425    pub Input: [cc_uint8; 32768usize],
1426    pub Output: [cc_uint8; 8192usize],
1427    pub Head: [cc_uint16; 4096usize],
1428    pub Prev: [cc_uint16; 32768usize],
1429    pub WroteHeader: cc_bool,
1430}
1431#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1432const _: () = {
1433    ["Size of DeflateState"][::std::mem::size_of::<DeflateState>() - 115600usize];
1434    ["Alignment of DeflateState"][::std::mem::align_of::<DeflateState>() - 8usize];
1435    ["Offset of field: DeflateState::Bits"][::std::mem::offset_of!(DeflateState, Bits) - 0usize];
1436    ["Offset of field: DeflateState::NumBits"]
1437        [::std::mem::offset_of!(DeflateState, NumBits) - 4usize];
1438    ["Offset of field: DeflateState::InputPosition"]
1439        [::std::mem::offset_of!(DeflateState, InputPosition) - 8usize];
1440    ["Offset of field: DeflateState::NextOut"]
1441        [::std::mem::offset_of!(DeflateState, NextOut) - 16usize];
1442    ["Offset of field: DeflateState::AvailOut"]
1443        [::std::mem::offset_of!(DeflateState, AvailOut) - 24usize];
1444    ["Offset of field: DeflateState::Dest"][::std::mem::offset_of!(DeflateState, Dest) - 32usize];
1445    ["Offset of field: DeflateState::LitsCodewords"]
1446        [::std::mem::offset_of!(DeflateState, LitsCodewords) - 40usize];
1447    ["Offset of field: DeflateState::LitsLens"]
1448        [::std::mem::offset_of!(DeflateState, LitsLens) - 616usize];
1449    ["Offset of field: DeflateState::Input"]
1450        [::std::mem::offset_of!(DeflateState, Input) - 904usize];
1451    ["Offset of field: DeflateState::Output"]
1452        [::std::mem::offset_of!(DeflateState, Output) - 33672usize];
1453    ["Offset of field: DeflateState::Head"]
1454        [::std::mem::offset_of!(DeflateState, Head) - 41864usize];
1455    ["Offset of field: DeflateState::Prev"]
1456        [::std::mem::offset_of!(DeflateState, Prev) - 50056usize];
1457    ["Offset of field: DeflateState::WroteHeader"]
1458        [::std::mem::offset_of!(DeflateState, WroteHeader) - 115592usize];
1459};
1460unsafe extern "C" {
1461    pub fn Deflate_MakeStream(
1462        stream: *mut Stream,
1463        state: *mut DeflateState,
1464        underlying: *mut Stream,
1465    );
1466}
1467#[repr(C)]
1468#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1469pub struct GZipState {
1470    pub Base: DeflateState,
1471    pub Crc32: cc_uint32,
1472    pub Size: cc_uint32,
1473}
1474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1475const _: () = {
1476    ["Size of GZipState"][::std::mem::size_of::<GZipState>() - 115608usize];
1477    ["Alignment of GZipState"][::std::mem::align_of::<GZipState>() - 8usize];
1478    ["Offset of field: GZipState::Base"][::std::mem::offset_of!(GZipState, Base) - 0usize];
1479    ["Offset of field: GZipState::Crc32"][::std::mem::offset_of!(GZipState, Crc32) - 115600usize];
1480    ["Offset of field: GZipState::Size"][::std::mem::offset_of!(GZipState, Size) - 115604usize];
1481};
1482unsafe extern "C" {
1483    pub fn GZip_MakeStream(stream: *mut Stream, state: *mut GZipState, underlying: *mut Stream);
1484}
1485pub type FP_GZip_MakeStream = ::std::option::Option<
1486    unsafe extern "C" fn(stream: *mut Stream, state: *mut GZipState, underlying: *mut Stream),
1487>;
1488#[repr(C)]
1489#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1490pub struct ZLibState {
1491    pub Base: DeflateState,
1492    pub Adler32: cc_uint32,
1493}
1494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1495const _: () = {
1496    ["Size of ZLibState"][::std::mem::size_of::<ZLibState>() - 115608usize];
1497    ["Alignment of ZLibState"][::std::mem::align_of::<ZLibState>() - 8usize];
1498    ["Offset of field: ZLibState::Base"][::std::mem::offset_of!(ZLibState, Base) - 0usize];
1499    ["Offset of field: ZLibState::Adler32"]
1500        [::std::mem::offset_of!(ZLibState, Adler32) - 115600usize];
1501};
1502unsafe extern "C" {
1503    pub fn ZLib_MakeStream(stream: *mut Stream, state: *mut ZLibState, underlying: *mut Stream);
1504}
1505pub type FP_ZLib_MakeStream = ::std::option::Option<
1506    unsafe extern "C" fn(stream: *mut Stream, state: *mut ZLibState, underlying: *mut Stream),
1507>;
1508#[repr(C)]
1509#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1510pub struct ZipEntry {
1511    pub CompressedSize: cc_uint32,
1512    pub UncompressedSize: cc_uint32,
1513    pub LocalHeaderOffset: cc_uint32,
1514}
1515#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1516const _: () = {
1517    ["Size of ZipEntry"][::std::mem::size_of::<ZipEntry>() - 12usize];
1518    ["Alignment of ZipEntry"][::std::mem::align_of::<ZipEntry>() - 4usize];
1519    ["Offset of field: ZipEntry::CompressedSize"]
1520        [::std::mem::offset_of!(ZipEntry, CompressedSize) - 0usize];
1521    ["Offset of field: ZipEntry::UncompressedSize"]
1522        [::std::mem::offset_of!(ZipEntry, UncompressedSize) - 4usize];
1523    ["Offset of field: ZipEntry::LocalHeaderOffset"]
1524        [::std::mem::offset_of!(ZipEntry, LocalHeaderOffset) - 8usize];
1525};
1526pub type Zip_ProcessEntry = ::std::option::Option<
1527    unsafe extern "C" fn(
1528        path: *const cc_string,
1529        data: *mut Stream,
1530        entry: *mut ZipEntry,
1531    ) -> cc_result,
1532>;
1533pub type Zip_SelectEntry =
1534    ::std::option::Option<unsafe extern "C" fn(path: *const cc_string) -> cc_bool>;
1535#[repr(C)]
1536#[derive(Debug, Copy, Clone, PartialEq)]
1537pub struct _DrawerData {
1538    pub Tinted: cc_bool,
1539    pub TintCol: PackedCol,
1540    pub MinBB: Vec3,
1541    pub MaxBB: Vec3,
1542    pub X1: f32,
1543    pub Y1: f32,
1544    pub Z1: f32,
1545    pub X2: f32,
1546    pub Y2: f32,
1547    pub Z2: f32,
1548}
1549#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1550const _: () = {
1551    ["Size of _DrawerData"][::std::mem::size_of::<_DrawerData>() - 56usize];
1552    ["Alignment of _DrawerData"][::std::mem::align_of::<_DrawerData>() - 4usize];
1553    ["Offset of field: _DrawerData::Tinted"][::std::mem::offset_of!(_DrawerData, Tinted) - 0usize];
1554    ["Offset of field: _DrawerData::TintCol"]
1555        [::std::mem::offset_of!(_DrawerData, TintCol) - 4usize];
1556    ["Offset of field: _DrawerData::MinBB"][::std::mem::offset_of!(_DrawerData, MinBB) - 8usize];
1557    ["Offset of field: _DrawerData::MaxBB"][::std::mem::offset_of!(_DrawerData, MaxBB) - 20usize];
1558    ["Offset of field: _DrawerData::X1"][::std::mem::offset_of!(_DrawerData, X1) - 32usize];
1559    ["Offset of field: _DrawerData::Y1"][::std::mem::offset_of!(_DrawerData, Y1) - 36usize];
1560    ["Offset of field: _DrawerData::Z1"][::std::mem::offset_of!(_DrawerData, Z1) - 40usize];
1561    ["Offset of field: _DrawerData::X2"][::std::mem::offset_of!(_DrawerData, X2) - 44usize];
1562    ["Offset of field: _DrawerData::Y2"][::std::mem::offset_of!(_DrawerData, Y2) - 48usize];
1563    ["Offset of field: _DrawerData::Z2"][::std::mem::offset_of!(_DrawerData, Z2) - 52usize];
1564};
1565#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
1566    pub static mut Drawer: _DrawerData;
1567}
1568unsafe extern "C" {
1569    pub fn Drawer_XMin(
1570        count: ::std::os::raw::c_int,
1571        col: PackedCol,
1572        texLoc: TextureLoc,
1573        vertices: *mut *mut VertexTextured,
1574    );
1575}
1576unsafe extern "C" {
1577    pub fn Drawer_XMax(
1578        count: ::std::os::raw::c_int,
1579        col: PackedCol,
1580        texLoc: TextureLoc,
1581        vertices: *mut *mut VertexTextured,
1582    );
1583}
1584unsafe extern "C" {
1585    pub fn Drawer_ZMin(
1586        count: ::std::os::raw::c_int,
1587        col: PackedCol,
1588        texLoc: TextureLoc,
1589        vertices: *mut *mut VertexTextured,
1590    );
1591}
1592unsafe extern "C" {
1593    pub fn Drawer_ZMax(
1594        count: ::std::os::raw::c_int,
1595        col: PackedCol,
1596        texLoc: TextureLoc,
1597        vertices: *mut *mut VertexTextured,
1598    );
1599}
1600unsafe extern "C" {
1601    pub fn Drawer_YMin(
1602        count: ::std::os::raw::c_int,
1603        col: PackedCol,
1604        texLoc: TextureLoc,
1605        vertices: *mut *mut VertexTextured,
1606    );
1607}
1608unsafe extern "C" {
1609    pub fn Drawer_YMax(
1610        count: ::std::os::raw::c_int,
1611        col: PackedCol,
1612        texLoc: TextureLoc,
1613        vertices: *mut *mut VertexTextured,
1614    );
1615}
1616pub const FONT_FLAGS_FONT_FLAGS_NONE: FONT_FLAGS = 0;
1617pub const FONT_FLAGS_FONT_FLAGS_BOLD: FONT_FLAGS = 1;
1618pub const FONT_FLAGS_FONT_FLAGS_UNDERLINE: FONT_FLAGS = 2;
1619pub const FONT_FLAGS_FONT_FLAGS_PADDING: FONT_FLAGS = 4;
1620pub type FONT_FLAGS = ::std::os::raw::c_int;
1621#[repr(C)]
1622#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1623pub struct FontDesc {
1624    pub handle: *mut ::std::os::raw::c_void,
1625    pub size: cc_uint16,
1626    pub flags: cc_uint16,
1627    pub height: ::std::os::raw::c_int,
1628}
1629#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1630const _: () = {
1631    ["Size of FontDesc"][::std::mem::size_of::<FontDesc>() - 16usize];
1632    ["Alignment of FontDesc"][::std::mem::align_of::<FontDesc>() - 8usize];
1633    ["Offset of field: FontDesc::handle"][::std::mem::offset_of!(FontDesc, handle) - 0usize];
1634    ["Offset of field: FontDesc::size"][::std::mem::offset_of!(FontDesc, size) - 8usize];
1635    ["Offset of field: FontDesc::flags"][::std::mem::offset_of!(FontDesc, flags) - 10usize];
1636    ["Offset of field: FontDesc::height"][::std::mem::offset_of!(FontDesc, height) - 12usize];
1637};
1638#[repr(C)]
1639#[derive(Debug, Hash, PartialEq, Eq)]
1640pub struct DrawTextArgs {
1641    pub text: cc_string,
1642    pub font: *mut FontDesc,
1643    pub useShadow: cc_bool,
1644}
1645#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1646const _: () = {
1647    ["Size of DrawTextArgs"][::std::mem::size_of::<DrawTextArgs>() - 32usize];
1648    ["Alignment of DrawTextArgs"][::std::mem::align_of::<DrawTextArgs>() - 8usize];
1649    ["Offset of field: DrawTextArgs::text"][::std::mem::offset_of!(DrawTextArgs, text) - 0usize];
1650    ["Offset of field: DrawTextArgs::font"][::std::mem::offset_of!(DrawTextArgs, font) - 16usize];
1651    ["Offset of field: DrawTextArgs::useShadow"]
1652        [::std::mem::offset_of!(DrawTextArgs, useShadow) - 24usize];
1653};
1654#[repr(C)]
1655#[derive(Debug, Hash, PartialEq, Eq)]
1656pub struct Context2D {
1657    pub bmp: Bitmap,
1658    pub width: ::std::os::raw::c_int,
1659    pub height: ::std::os::raw::c_int,
1660    pub meta: *mut ::std::os::raw::c_void,
1661}
1662#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1663const _: () = {
1664    ["Size of Context2D"][::std::mem::size_of::<Context2D>() - 32usize];
1665    ["Alignment of Context2D"][::std::mem::align_of::<Context2D>() - 8usize];
1666    ["Offset of field: Context2D::bmp"][::std::mem::offset_of!(Context2D, bmp) - 0usize];
1667    ["Offset of field: Context2D::width"][::std::mem::offset_of!(Context2D, width) - 16usize];
1668    ["Offset of field: Context2D::height"][::std::mem::offset_of!(Context2D, height) - 20usize];
1669    ["Offset of field: Context2D::meta"][::std::mem::offset_of!(Context2D, meta) - 24usize];
1670};
1671#[repr(C)]
1672#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1673pub struct _Drawer2DData {
1674    pub BitmappedText: cc_bool,
1675    pub BlackTextShadows: cc_bool,
1676    pub Colors: [BitmapCol; 256usize],
1677}
1678#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1679const _: () = {
1680    ["Size of _Drawer2DData"][::std::mem::size_of::<_Drawer2DData>() - 1028usize];
1681    ["Alignment of _Drawer2DData"][::std::mem::align_of::<_Drawer2DData>() - 4usize];
1682    ["Offset of field: _Drawer2DData::BitmappedText"]
1683        [::std::mem::offset_of!(_Drawer2DData, BitmappedText) - 0usize];
1684    ["Offset of field: _Drawer2DData::BlackTextShadows"]
1685        [::std::mem::offset_of!(_Drawer2DData, BlackTextShadows) - 1usize];
1686    ["Offset of field: _Drawer2DData::Colors"]
1687        [::std::mem::offset_of!(_Drawer2DData, Colors) - 4usize];
1688};
1689#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
1690    pub static mut Drawer2D: _Drawer2DData;
1691}
1692unsafe extern "C" {
1693    pub fn Context2D_Alloc(
1694        ctx: *mut Context2D,
1695        width: ::std::os::raw::c_int,
1696        height: ::std::os::raw::c_int,
1697    );
1698}
1699unsafe extern "C" {
1700    pub fn Context2D_Wrap(ctx: *mut Context2D, bmp: *mut Bitmap);
1701}
1702unsafe extern "C" {
1703    pub fn Context2D_Free(ctx: *mut Context2D);
1704}
1705unsafe extern "C" {
1706    pub fn Context2D_MakeTexture(tex: *mut Texture, ctx: *mut Context2D);
1707}
1708unsafe extern "C" {
1709    pub fn Context2D_DrawText(
1710        ctx: *mut Context2D,
1711        args: *mut DrawTextArgs,
1712        x: ::std::os::raw::c_int,
1713        y: ::std::os::raw::c_int,
1714    );
1715}
1716unsafe extern "C" {
1717    pub fn Context2D_DrawPixels(
1718        ctx: *mut Context2D,
1719        x: ::std::os::raw::c_int,
1720        y: ::std::os::raw::c_int,
1721        src: *mut Bitmap,
1722    );
1723}
1724unsafe extern "C" {
1725    pub fn Context2D_Clear(
1726        ctx: *mut Context2D,
1727        color: BitmapCol,
1728        x: ::std::os::raw::c_int,
1729        y: ::std::os::raw::c_int,
1730        width: ::std::os::raw::c_int,
1731        height: ::std::os::raw::c_int,
1732    );
1733}
1734unsafe extern "C" {
1735    pub fn Gradient_Noise(
1736        ctx: *mut Context2D,
1737        color: BitmapCol,
1738        variation: ::std::os::raw::c_int,
1739        x: ::std::os::raw::c_int,
1740        y: ::std::os::raw::c_int,
1741        width: ::std::os::raw::c_int,
1742        height: ::std::os::raw::c_int,
1743    );
1744}
1745unsafe extern "C" {
1746    pub fn Gradient_Vertical(
1747        ctx: *mut Context2D,
1748        a: BitmapCol,
1749        b: BitmapCol,
1750        x: ::std::os::raw::c_int,
1751        y: ::std::os::raw::c_int,
1752        width: ::std::os::raw::c_int,
1753        height: ::std::os::raw::c_int,
1754    );
1755}
1756unsafe extern "C" {
1757    pub fn Gradient_Blend(
1758        ctx: *mut Context2D,
1759        color: BitmapCol,
1760        blend: ::std::os::raw::c_int,
1761        x: ::std::os::raw::c_int,
1762        y: ::std::os::raw::c_int,
1763        width: ::std::os::raw::c_int,
1764        height: ::std::os::raw::c_int,
1765    );
1766}
1767unsafe extern "C" {
1768    pub fn Drawer2D_TextWidth(args: *mut DrawTextArgs) -> ::std::os::raw::c_int;
1769}
1770unsafe extern "C" {
1771    pub fn Drawer2D_TextHeight(args: *mut DrawTextArgs) -> ::std::os::raw::c_int;
1772}
1773unsafe extern "C" {
1774    pub fn Drawer2D_MakeTextTexture(tex: *mut Texture, args: *mut DrawTextArgs);
1775}
1776unsafe extern "C" {
1777    pub fn Font_Make(
1778        desc: *mut FontDesc,
1779        size: ::std::os::raw::c_int,
1780        flags: ::std::os::raw::c_int,
1781    );
1782}
1783unsafe extern "C" {
1784    pub fn Font_Free(desc: *mut FontDesc);
1785}
1786#[repr(C)]
1787#[derive(Debug, Copy, Clone, PartialEq)]
1788pub struct AnimatedComp {
1789    pub BobbingHor: f32,
1790    pub BobbingVer: f32,
1791    pub BobbingModel: f32,
1792    pub WalkTime: f32,
1793    pub Swing: f32,
1794    pub BobStrength: f32,
1795    pub WalkTimeO: f32,
1796    pub WalkTimeN: f32,
1797    pub SwingO: f32,
1798    pub SwingN: f32,
1799    pub BobStrengthO: f32,
1800    pub BobStrengthN: f32,
1801    pub LeftLegX: f32,
1802    pub LeftLegZ: f32,
1803    pub RightLegX: f32,
1804    pub RightLegZ: f32,
1805    pub LeftArmX: f32,
1806    pub LeftArmZ: f32,
1807    pub RightArmX: f32,
1808    pub RightArmZ: f32,
1809}
1810#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1811const _: () = {
1812    ["Size of AnimatedComp"][::std::mem::size_of::<AnimatedComp>() - 80usize];
1813    ["Alignment of AnimatedComp"][::std::mem::align_of::<AnimatedComp>() - 4usize];
1814    ["Offset of field: AnimatedComp::BobbingHor"]
1815        [::std::mem::offset_of!(AnimatedComp, BobbingHor) - 0usize];
1816    ["Offset of field: AnimatedComp::BobbingVer"]
1817        [::std::mem::offset_of!(AnimatedComp, BobbingVer) - 4usize];
1818    ["Offset of field: AnimatedComp::BobbingModel"]
1819        [::std::mem::offset_of!(AnimatedComp, BobbingModel) - 8usize];
1820    ["Offset of field: AnimatedComp::WalkTime"]
1821        [::std::mem::offset_of!(AnimatedComp, WalkTime) - 12usize];
1822    ["Offset of field: AnimatedComp::Swing"][::std::mem::offset_of!(AnimatedComp, Swing) - 16usize];
1823    ["Offset of field: AnimatedComp::BobStrength"]
1824        [::std::mem::offset_of!(AnimatedComp, BobStrength) - 20usize];
1825    ["Offset of field: AnimatedComp::WalkTimeO"]
1826        [::std::mem::offset_of!(AnimatedComp, WalkTimeO) - 24usize];
1827    ["Offset of field: AnimatedComp::WalkTimeN"]
1828        [::std::mem::offset_of!(AnimatedComp, WalkTimeN) - 28usize];
1829    ["Offset of field: AnimatedComp::SwingO"]
1830        [::std::mem::offset_of!(AnimatedComp, SwingO) - 32usize];
1831    ["Offset of field: AnimatedComp::SwingN"]
1832        [::std::mem::offset_of!(AnimatedComp, SwingN) - 36usize];
1833    ["Offset of field: AnimatedComp::BobStrengthO"]
1834        [::std::mem::offset_of!(AnimatedComp, BobStrengthO) - 40usize];
1835    ["Offset of field: AnimatedComp::BobStrengthN"]
1836        [::std::mem::offset_of!(AnimatedComp, BobStrengthN) - 44usize];
1837    ["Offset of field: AnimatedComp::LeftLegX"]
1838        [::std::mem::offset_of!(AnimatedComp, LeftLegX) - 48usize];
1839    ["Offset of field: AnimatedComp::LeftLegZ"]
1840        [::std::mem::offset_of!(AnimatedComp, LeftLegZ) - 52usize];
1841    ["Offset of field: AnimatedComp::RightLegX"]
1842        [::std::mem::offset_of!(AnimatedComp, RightLegX) - 56usize];
1843    ["Offset of field: AnimatedComp::RightLegZ"]
1844        [::std::mem::offset_of!(AnimatedComp, RightLegZ) - 60usize];
1845    ["Offset of field: AnimatedComp::LeftArmX"]
1846        [::std::mem::offset_of!(AnimatedComp, LeftArmX) - 64usize];
1847    ["Offset of field: AnimatedComp::LeftArmZ"]
1848        [::std::mem::offset_of!(AnimatedComp, LeftArmZ) - 68usize];
1849    ["Offset of field: AnimatedComp::RightArmX"]
1850        [::std::mem::offset_of!(AnimatedComp, RightArmX) - 72usize];
1851    ["Offset of field: AnimatedComp::RightArmZ"]
1852        [::std::mem::offset_of!(AnimatedComp, RightArmZ) - 76usize];
1853};
1854#[repr(C)]
1855#[derive(Debug, Copy, Clone, PartialEq)]
1856pub struct TiltComp {
1857    pub TiltX: f32,
1858    pub TiltY: f32,
1859    pub VelTiltStrength: f32,
1860    pub VelTiltStrengthO: f32,
1861    pub VelTiltStrengthN: f32,
1862}
1863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1864const _: () = {
1865    ["Size of TiltComp"][::std::mem::size_of::<TiltComp>() - 20usize];
1866    ["Alignment of TiltComp"][::std::mem::align_of::<TiltComp>() - 4usize];
1867    ["Offset of field: TiltComp::TiltX"][::std::mem::offset_of!(TiltComp, TiltX) - 0usize];
1868    ["Offset of field: TiltComp::TiltY"][::std::mem::offset_of!(TiltComp, TiltY) - 4usize];
1869    ["Offset of field: TiltComp::VelTiltStrength"]
1870        [::std::mem::offset_of!(TiltComp, VelTiltStrength) - 8usize];
1871    ["Offset of field: TiltComp::VelTiltStrengthO"]
1872        [::std::mem::offset_of!(TiltComp, VelTiltStrengthO) - 12usize];
1873    ["Offset of field: TiltComp::VelTiltStrengthN"]
1874        [::std::mem::offset_of!(TiltComp, VelTiltStrengthN) - 16usize];
1875};
1876#[repr(C)]
1877#[derive(Debug, PartialEq)]
1878pub struct HacksComp {
1879    pub IsOp: cc_bool,
1880    pub Floating: cc_bool,
1881    pub _noclipping: cc_bool,
1882    pub SpeedMultiplier: f32,
1883    pub PushbackPlacing: cc_bool,
1884    pub FullBlockStep: cc_bool,
1885    pub Enabled: cc_bool,
1886    pub CanAnyHacks: cc_bool,
1887    pub CanUseThirdPerson: cc_bool,
1888    pub CanSpeed: cc_bool,
1889    pub CanFly: cc_bool,
1890    pub CanRespawn: cc_bool,
1891    pub CanNoclip: cc_bool,
1892    pub CanPushbackBlocks: cc_bool,
1893    pub CanSeeAllNames: cc_bool,
1894    pub CanDoubleJump: cc_bool,
1895    pub CanBePushed: cc_bool,
1896    pub BaseHorSpeed: f32,
1897    pub MaxJumps: ::std::os::raw::c_int,
1898    pub NoclipSlide: cc_bool,
1899    pub WOMStyleHacks: cc_bool,
1900    pub Noclip: cc_bool,
1901    pub Flying: cc_bool,
1902    pub FlyingUp: cc_bool,
1903    pub FlyingDown: cc_bool,
1904    pub Speeding: cc_bool,
1905    pub HalfSpeeding: cc_bool,
1906    pub MaxHorSpeed: f32,
1907    pub HacksFlags: cc_string,
1908    pub __HacksFlagsBuffer: [::std::os::raw::c_char; 128usize],
1909}
1910#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1911const _: () = {
1912    ["Size of HacksComp"][::std::mem::size_of::<HacksComp>() - 192usize];
1913    ["Alignment of HacksComp"][::std::mem::align_of::<HacksComp>() - 8usize];
1914    ["Offset of field: HacksComp::IsOp"][::std::mem::offset_of!(HacksComp, IsOp) - 0usize];
1915    ["Offset of field: HacksComp::Floating"][::std::mem::offset_of!(HacksComp, Floating) - 1usize];
1916    ["Offset of field: HacksComp::_noclipping"]
1917        [::std::mem::offset_of!(HacksComp, _noclipping) - 2usize];
1918    ["Offset of field: HacksComp::SpeedMultiplier"]
1919        [::std::mem::offset_of!(HacksComp, SpeedMultiplier) - 4usize];
1920    ["Offset of field: HacksComp::PushbackPlacing"]
1921        [::std::mem::offset_of!(HacksComp, PushbackPlacing) - 8usize];
1922    ["Offset of field: HacksComp::FullBlockStep"]
1923        [::std::mem::offset_of!(HacksComp, FullBlockStep) - 9usize];
1924    ["Offset of field: HacksComp::Enabled"][::std::mem::offset_of!(HacksComp, Enabled) - 10usize];
1925    ["Offset of field: HacksComp::CanAnyHacks"]
1926        [::std::mem::offset_of!(HacksComp, CanAnyHacks) - 11usize];
1927    ["Offset of field: HacksComp::CanUseThirdPerson"]
1928        [::std::mem::offset_of!(HacksComp, CanUseThirdPerson) - 12usize];
1929    ["Offset of field: HacksComp::CanSpeed"][::std::mem::offset_of!(HacksComp, CanSpeed) - 13usize];
1930    ["Offset of field: HacksComp::CanFly"][::std::mem::offset_of!(HacksComp, CanFly) - 14usize];
1931    ["Offset of field: HacksComp::CanRespawn"]
1932        [::std::mem::offset_of!(HacksComp, CanRespawn) - 15usize];
1933    ["Offset of field: HacksComp::CanNoclip"]
1934        [::std::mem::offset_of!(HacksComp, CanNoclip) - 16usize];
1935    ["Offset of field: HacksComp::CanPushbackBlocks"]
1936        [::std::mem::offset_of!(HacksComp, CanPushbackBlocks) - 17usize];
1937    ["Offset of field: HacksComp::CanSeeAllNames"]
1938        [::std::mem::offset_of!(HacksComp, CanSeeAllNames) - 18usize];
1939    ["Offset of field: HacksComp::CanDoubleJump"]
1940        [::std::mem::offset_of!(HacksComp, CanDoubleJump) - 19usize];
1941    ["Offset of field: HacksComp::CanBePushed"]
1942        [::std::mem::offset_of!(HacksComp, CanBePushed) - 20usize];
1943    ["Offset of field: HacksComp::BaseHorSpeed"]
1944        [::std::mem::offset_of!(HacksComp, BaseHorSpeed) - 24usize];
1945    ["Offset of field: HacksComp::MaxJumps"][::std::mem::offset_of!(HacksComp, MaxJumps) - 28usize];
1946    ["Offset of field: HacksComp::NoclipSlide"]
1947        [::std::mem::offset_of!(HacksComp, NoclipSlide) - 32usize];
1948    ["Offset of field: HacksComp::WOMStyleHacks"]
1949        [::std::mem::offset_of!(HacksComp, WOMStyleHacks) - 33usize];
1950    ["Offset of field: HacksComp::Noclip"][::std::mem::offset_of!(HacksComp, Noclip) - 34usize];
1951    ["Offset of field: HacksComp::Flying"][::std::mem::offset_of!(HacksComp, Flying) - 35usize];
1952    ["Offset of field: HacksComp::FlyingUp"][::std::mem::offset_of!(HacksComp, FlyingUp) - 36usize];
1953    ["Offset of field: HacksComp::FlyingDown"]
1954        [::std::mem::offset_of!(HacksComp, FlyingDown) - 37usize];
1955    ["Offset of field: HacksComp::Speeding"][::std::mem::offset_of!(HacksComp, Speeding) - 38usize];
1956    ["Offset of field: HacksComp::HalfSpeeding"]
1957        [::std::mem::offset_of!(HacksComp, HalfSpeeding) - 39usize];
1958    ["Offset of field: HacksComp::MaxHorSpeed"]
1959        [::std::mem::offset_of!(HacksComp, MaxHorSpeed) - 40usize];
1960    ["Offset of field: HacksComp::HacksFlags"]
1961        [::std::mem::offset_of!(HacksComp, HacksFlags) - 48usize];
1962    ["Offset of field: HacksComp::__HacksFlagsBuffer"]
1963        [::std::mem::offset_of!(HacksComp, __HacksFlagsBuffer) - 64usize];
1964};
1965#[repr(C)]
1966#[derive(Debug, Copy, Clone, PartialEq)]
1967pub struct InterpComp {
1968    pub RotYCount: ::std::os::raw::c_int,
1969    pub RotYStates: [f32; 15usize],
1970}
1971#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1972const _: () = {
1973    ["Size of InterpComp"][::std::mem::size_of::<InterpComp>() - 64usize];
1974    ["Alignment of InterpComp"][::std::mem::align_of::<InterpComp>() - 4usize];
1975    ["Offset of field: InterpComp::RotYCount"]
1976        [::std::mem::offset_of!(InterpComp, RotYCount) - 0usize];
1977    ["Offset of field: InterpComp::RotYStates"]
1978        [::std::mem::offset_of!(InterpComp, RotYStates) - 4usize];
1979};
1980#[repr(C)]
1981#[derive(Debug, Copy, Clone, PartialEq)]
1982pub struct NetInterpAngles {
1983    pub Pitch: f32,
1984    pub Yaw: f32,
1985    pub RotX: f32,
1986    pub RotZ: f32,
1987}
1988#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1989const _: () = {
1990    ["Size of NetInterpAngles"][::std::mem::size_of::<NetInterpAngles>() - 16usize];
1991    ["Alignment of NetInterpAngles"][::std::mem::align_of::<NetInterpAngles>() - 4usize];
1992    ["Offset of field: NetInterpAngles::Pitch"]
1993        [::std::mem::offset_of!(NetInterpAngles, Pitch) - 0usize];
1994    ["Offset of field: NetInterpAngles::Yaw"]
1995        [::std::mem::offset_of!(NetInterpAngles, Yaw) - 4usize];
1996    ["Offset of field: NetInterpAngles::RotX"]
1997        [::std::mem::offset_of!(NetInterpAngles, RotX) - 8usize];
1998    ["Offset of field: NetInterpAngles::RotZ"]
1999        [::std::mem::offset_of!(NetInterpAngles, RotZ) - 12usize];
2000};
2001#[repr(C)]
2002#[derive(Debug, Copy, Clone, PartialEq)]
2003pub struct NetInterpComp {
2004    pub RotYCount: ::std::os::raw::c_int,
2005    pub RotYStates: [f32; 15usize],
2006    pub CurPos: Vec3,
2007    pub CurAngles: NetInterpAngles,
2008    pub PositionsCount: ::std::os::raw::c_int,
2009    pub AnglesCount: ::std::os::raw::c_int,
2010    pub Positions: [Vec3; 10usize],
2011    pub Angles: [NetInterpAngles; 10usize],
2012}
2013#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2014const _: () = {
2015    ["Size of NetInterpComp"][::std::mem::size_of::<NetInterpComp>() - 380usize];
2016    ["Alignment of NetInterpComp"][::std::mem::align_of::<NetInterpComp>() - 4usize];
2017    ["Offset of field: NetInterpComp::RotYCount"]
2018        [::std::mem::offset_of!(NetInterpComp, RotYCount) - 0usize];
2019    ["Offset of field: NetInterpComp::RotYStates"]
2020        [::std::mem::offset_of!(NetInterpComp, RotYStates) - 4usize];
2021    ["Offset of field: NetInterpComp::CurPos"]
2022        [::std::mem::offset_of!(NetInterpComp, CurPos) - 64usize];
2023    ["Offset of field: NetInterpComp::CurAngles"]
2024        [::std::mem::offset_of!(NetInterpComp, CurAngles) - 76usize];
2025    ["Offset of field: NetInterpComp::PositionsCount"]
2026        [::std::mem::offset_of!(NetInterpComp, PositionsCount) - 92usize];
2027    ["Offset of field: NetInterpComp::AnglesCount"]
2028        [::std::mem::offset_of!(NetInterpComp, AnglesCount) - 96usize];
2029    ["Offset of field: NetInterpComp::Positions"]
2030        [::std::mem::offset_of!(NetInterpComp, Positions) - 100usize];
2031    ["Offset of field: NetInterpComp::Angles"]
2032        [::std::mem::offset_of!(NetInterpComp, Angles) - 220usize];
2033};
2034#[repr(C)]
2035#[derive(Debug, Copy, Clone, PartialEq)]
2036pub struct CollisionsComp {
2037    pub Entity: *mut Entity,
2038    pub HitXMin: cc_bool,
2039    pub HitYMin: cc_bool,
2040    pub HitZMin: cc_bool,
2041    pub HitXMax: cc_bool,
2042    pub HitYMax: cc_bool,
2043    pub HitZMax: cc_bool,
2044    pub WasOn: cc_bool,
2045    pub StepSize: f32,
2046}
2047#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2048const _: () = {
2049    ["Size of CollisionsComp"][::std::mem::size_of::<CollisionsComp>() - 24usize];
2050    ["Alignment of CollisionsComp"][::std::mem::align_of::<CollisionsComp>() - 8usize];
2051    ["Offset of field: CollisionsComp::Entity"]
2052        [::std::mem::offset_of!(CollisionsComp, Entity) - 0usize];
2053    ["Offset of field: CollisionsComp::HitXMin"]
2054        [::std::mem::offset_of!(CollisionsComp, HitXMin) - 8usize];
2055    ["Offset of field: CollisionsComp::HitYMin"]
2056        [::std::mem::offset_of!(CollisionsComp, HitYMin) - 9usize];
2057    ["Offset of field: CollisionsComp::HitZMin"]
2058        [::std::mem::offset_of!(CollisionsComp, HitZMin) - 10usize];
2059    ["Offset of field: CollisionsComp::HitXMax"]
2060        [::std::mem::offset_of!(CollisionsComp, HitXMax) - 11usize];
2061    ["Offset of field: CollisionsComp::HitYMax"]
2062        [::std::mem::offset_of!(CollisionsComp, HitYMax) - 12usize];
2063    ["Offset of field: CollisionsComp::HitZMax"]
2064        [::std::mem::offset_of!(CollisionsComp, HitZMax) - 13usize];
2065    ["Offset of field: CollisionsComp::WasOn"]
2066        [::std::mem::offset_of!(CollisionsComp, WasOn) - 14usize];
2067    ["Offset of field: CollisionsComp::StepSize"]
2068        [::std::mem::offset_of!(CollisionsComp, StepSize) - 16usize];
2069};
2070#[repr(C)]
2071#[derive(Debug, Copy, Clone, PartialEq)]
2072pub struct PhysicsComp {
2073    pub UseLiquidGravity: cc_bool,
2074    pub CanLiquidJump: cc_bool,
2075    pub Jumping: cc_bool,
2076    pub MultiJumps: ::std::os::raw::c_int,
2077    pub Entity: *mut Entity,
2078    pub JumpVel: f32,
2079    pub UserJumpVel: f32,
2080    pub ServerJumpVel: f32,
2081    pub Hacks: *mut HacksComp,
2082    pub Collisions: *mut CollisionsComp,
2083}
2084#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2085const _: () = {
2086    ["Size of PhysicsComp"][::std::mem::size_of::<PhysicsComp>() - 48usize];
2087    ["Alignment of PhysicsComp"][::std::mem::align_of::<PhysicsComp>() - 8usize];
2088    ["Offset of field: PhysicsComp::UseLiquidGravity"]
2089        [::std::mem::offset_of!(PhysicsComp, UseLiquidGravity) - 0usize];
2090    ["Offset of field: PhysicsComp::CanLiquidJump"]
2091        [::std::mem::offset_of!(PhysicsComp, CanLiquidJump) - 1usize];
2092    ["Offset of field: PhysicsComp::Jumping"]
2093        [::std::mem::offset_of!(PhysicsComp, Jumping) - 2usize];
2094    ["Offset of field: PhysicsComp::MultiJumps"]
2095        [::std::mem::offset_of!(PhysicsComp, MultiJumps) - 4usize];
2096    ["Offset of field: PhysicsComp::Entity"][::std::mem::offset_of!(PhysicsComp, Entity) - 8usize];
2097    ["Offset of field: PhysicsComp::JumpVel"]
2098        [::std::mem::offset_of!(PhysicsComp, JumpVel) - 16usize];
2099    ["Offset of field: PhysicsComp::UserJumpVel"]
2100        [::std::mem::offset_of!(PhysicsComp, UserJumpVel) - 20usize];
2101    ["Offset of field: PhysicsComp::ServerJumpVel"]
2102        [::std::mem::offset_of!(PhysicsComp, ServerJumpVel) - 24usize];
2103    ["Offset of field: PhysicsComp::Hacks"][::std::mem::offset_of!(PhysicsComp, Hacks) - 32usize];
2104    ["Offset of field: PhysicsComp::Collisions"]
2105        [::std::mem::offset_of!(PhysicsComp, Collisions) - 40usize];
2106};
2107#[repr(C)]
2108#[derive(Debug, Copy, Clone, PartialEq)]
2109pub struct AABB {
2110    pub Min: Vec3,
2111    pub Max: Vec3,
2112}
2113#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2114const _: () = {
2115    ["Size of AABB"][::std::mem::size_of::<AABB>() - 24usize];
2116    ["Alignment of AABB"][::std::mem::align_of::<AABB>() - 4usize];
2117    ["Offset of field: AABB::Min"][::std::mem::offset_of!(AABB, Min) - 0usize];
2118    ["Offset of field: AABB::Max"][::std::mem::offset_of!(AABB, Max) - 12usize];
2119};
2120unsafe extern "C" {
2121    pub fn AABB_Make(result: *mut AABB, pos: *const Vec3, size: *const Vec3);
2122}
2123#[repr(C)]
2124#[derive(Debug, Copy, Clone, PartialEq)]
2125pub struct SearcherState {
2126    pub x: ::std::os::raw::c_int,
2127    pub y: ::std::os::raw::c_int,
2128    pub z: ::std::os::raw::c_int,
2129    pub tSquared: f32,
2130}
2131#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2132const _: () = {
2133    ["Size of SearcherState"][::std::mem::size_of::<SearcherState>() - 16usize];
2134    ["Alignment of SearcherState"][::std::mem::align_of::<SearcherState>() - 4usize];
2135    ["Offset of field: SearcherState::x"][::std::mem::offset_of!(SearcherState, x) - 0usize];
2136    ["Offset of field: SearcherState::y"][::std::mem::offset_of!(SearcherState, y) - 4usize];
2137    ["Offset of field: SearcherState::z"][::std::mem::offset_of!(SearcherState, z) - 8usize];
2138    ["Offset of field: SearcherState::tSquared"]
2139        [::std::mem::offset_of!(SearcherState, tSquared) - 12usize];
2140};
2141unsafe extern "C" {
2142    pub fn String_CalcLen(
2143        raw: *const ::std::os::raw::c_char,
2144        capacity: ::std::os::raw::c_int,
2145    ) -> ::std::os::raw::c_int;
2146}
2147unsafe extern "C" {
2148    pub fn String_FromReadonly(buffer: *const ::std::os::raw::c_char) -> cc_string;
2149}
2150unsafe extern "C" {
2151    pub fn String_Copy(dst: *mut cc_string, src: *const cc_string);
2152}
2153unsafe extern "C" {
2154    pub fn String_CopyToRaw(
2155        dst: *mut ::std::os::raw::c_char,
2156        capacity: ::std::os::raw::c_int,
2157        src: *const cc_string,
2158    );
2159}
2160unsafe extern "C" {
2161    pub fn String_UNSAFE_Substring(
2162        str_: *const cc_string,
2163        offset: ::std::os::raw::c_int,
2164        length: ::std::os::raw::c_int,
2165    ) -> cc_string;
2166}
2167unsafe extern "C" {
2168    pub fn String_UNSAFE_SubstringAt(
2169        str_: *const cc_string,
2170        offset: ::std::os::raw::c_int,
2171    ) -> cc_string;
2172}
2173unsafe extern "C" {
2174    pub fn String_UNSAFE_Split(
2175        str_: *const cc_string,
2176        c: ::std::os::raw::c_char,
2177        subs: *mut cc_string,
2178        maxSubs: ::std::os::raw::c_int,
2179    ) -> ::std::os::raw::c_int;
2180}
2181unsafe extern "C" {
2182    pub fn String_UNSAFE_SplitBy(
2183        str_: *mut cc_string,
2184        c: ::std::os::raw::c_char,
2185        part: *mut cc_string,
2186    );
2187}
2188unsafe extern "C" {
2189    pub fn String_UNSAFE_Separate(
2190        str_: *const cc_string,
2191        c: ::std::os::raw::c_char,
2192        key: *mut cc_string,
2193        value: *mut cc_string,
2194    ) -> ::std::os::raw::c_int;
2195}
2196unsafe extern "C" {
2197    pub fn String_Equals(a: *const cc_string, b: *const cc_string) -> ::std::os::raw::c_int;
2198}
2199pub type FP_String_Equals = ::std::option::Option<
2200    unsafe extern "C" fn(a: *const cc_string, b: *const cc_string) -> ::std::os::raw::c_int,
2201>;
2202unsafe extern "C" {
2203    pub fn String_CaselessEquals(a: *const cc_string, b: *const cc_string)
2204    -> ::std::os::raw::c_int;
2205}
2206pub type FP_String_CaselessEquals = ::std::option::Option<
2207    unsafe extern "C" fn(a: *const cc_string, b: *const cc_string) -> ::std::os::raw::c_int,
2208>;
2209unsafe extern "C" {
2210    pub fn String_CaselessEqualsConst(
2211        a: *const cc_string,
2212        b: *const ::std::os::raw::c_char,
2213    ) -> ::std::os::raw::c_int;
2214}
2215pub type FP_String_CaselessEqualsConst = ::std::option::Option<
2216    unsafe extern "C" fn(
2217        a: *const cc_string,
2218        b: *const ::std::os::raw::c_char,
2219    ) -> ::std::os::raw::c_int,
2220>;
2221unsafe extern "C" {
2222    pub fn String_Append(str_: *mut cc_string, c: ::std::os::raw::c_char);
2223}
2224unsafe extern "C" {
2225    pub fn String_AppendBool(str_: *mut cc_string, value: cc_bool);
2226}
2227unsafe extern "C" {
2228    pub fn String_AppendInt(str_: *mut cc_string, num: ::std::os::raw::c_int);
2229}
2230unsafe extern "C" {
2231    pub fn String_AppendUInt32(str_: *mut cc_string, num: cc_uint32);
2232}
2233unsafe extern "C" {
2234    pub fn String_AppendPaddedInt(
2235        str_: *mut cc_string,
2236        num: ::std::os::raw::c_int,
2237        minDigits: ::std::os::raw::c_int,
2238    );
2239}
2240unsafe extern "C" {
2241    pub fn String_AppendFloat(str_: *mut cc_string, num: f32, fracDigits: ::std::os::raw::c_int);
2242}
2243unsafe extern "C" {
2244    pub fn String_AppendConst(str_: *mut cc_string, src: *const ::std::os::raw::c_char);
2245}
2246pub type FP_String_AppendConst = ::std::option::Option<
2247    unsafe extern "C" fn(str_: *mut cc_string, src: *const ::std::os::raw::c_char),
2248>;
2249unsafe extern "C" {
2250    pub fn String_AppendString(str_: *mut cc_string, src: *const cc_string);
2251}
2252unsafe extern "C" {
2253    pub fn String_AppendColorless(str_: *mut cc_string, src: *const cc_string);
2254}
2255unsafe extern "C" {
2256    pub fn String_AppendHex(str_: *mut cc_string, value: cc_uint8);
2257}
2258unsafe extern "C" {
2259    pub fn String_IndexOfAt(
2260        str_: *const cc_string,
2261        offset: ::std::os::raw::c_int,
2262        c: ::std::os::raw::c_char,
2263    ) -> ::std::os::raw::c_int;
2264}
2265unsafe extern "C" {
2266    pub fn String_LastIndexOfAt(
2267        str_: *const cc_string,
2268        offset: ::std::os::raw::c_int,
2269        c: ::std::os::raw::c_char,
2270    ) -> ::std::os::raw::c_int;
2271}
2272unsafe extern "C" {
2273    pub fn String_InsertAt(
2274        str_: *mut cc_string,
2275        offset: ::std::os::raw::c_int,
2276        c: ::std::os::raw::c_char,
2277    );
2278}
2279unsafe extern "C" {
2280    pub fn String_DeleteAt(str_: *mut cc_string, offset: ::std::os::raw::c_int);
2281}
2282unsafe extern "C" {
2283    pub fn String_UNSAFE_TrimStart(str_: *mut cc_string);
2284}
2285unsafe extern "C" {
2286    pub fn String_UNSAFE_TrimEnd(str_: *mut cc_string);
2287}
2288unsafe extern "C" {
2289    pub fn String_IndexOfConst(
2290        str_: *const cc_string,
2291        sub: *const ::std::os::raw::c_char,
2292    ) -> ::std::os::raw::c_int;
2293}
2294unsafe extern "C" {
2295    pub fn String_CaselessContains(
2296        str_: *const cc_string,
2297        sub: *const cc_string,
2298    ) -> ::std::os::raw::c_int;
2299}
2300pub type FP_String_CaselessContains = ::std::option::Option<
2301    unsafe extern "C" fn(str_: *const cc_string, sub: *const cc_string) -> ::std::os::raw::c_int,
2302>;
2303unsafe extern "C" {
2304    pub fn String_CaselessStarts(
2305        str_: *const cc_string,
2306        sub: *const cc_string,
2307    ) -> ::std::os::raw::c_int;
2308}
2309pub type FP_String_CaselessStarts = ::std::option::Option<
2310    unsafe extern "C" fn(str_: *const cc_string, sub: *const cc_string) -> ::std::os::raw::c_int,
2311>;
2312unsafe extern "C" {
2313    pub fn String_CaselessEnds(
2314        str_: *const cc_string,
2315        sub: *const cc_string,
2316    ) -> ::std::os::raw::c_int;
2317}
2318pub type FP_String_CaselessEnds = ::std::option::Option<
2319    unsafe extern "C" fn(str_: *const cc_string, sub: *const cc_string) -> ::std::os::raw::c_int,
2320>;
2321unsafe extern "C" {
2322    pub fn String_Compare(a: *const cc_string, b: *const cc_string) -> ::std::os::raw::c_int;
2323}
2324unsafe extern "C" {
2325    pub fn String_Format1(
2326        str_: *mut cc_string,
2327        format: *const ::std::os::raw::c_char,
2328        a1: *const ::std::os::raw::c_void,
2329    );
2330}
2331pub type FP_String_Format1 = ::std::option::Option<
2332    unsafe extern "C" fn(
2333        str_: *mut cc_string,
2334        format: *const ::std::os::raw::c_char,
2335        a1: *const ::std::os::raw::c_void,
2336    ),
2337>;
2338unsafe extern "C" {
2339    pub fn String_Format2(
2340        str_: *mut cc_string,
2341        format: *const ::std::os::raw::c_char,
2342        a1: *const ::std::os::raw::c_void,
2343        a2: *const ::std::os::raw::c_void,
2344    );
2345}
2346pub type FP_String_Format2 = ::std::option::Option<
2347    unsafe extern "C" fn(
2348        str_: *mut cc_string,
2349        format: *const ::std::os::raw::c_char,
2350        a1: *const ::std::os::raw::c_void,
2351        a2: *const ::std::os::raw::c_void,
2352    ),
2353>;
2354unsafe extern "C" {
2355    pub fn String_Format3(
2356        str_: *mut cc_string,
2357        format: *const ::std::os::raw::c_char,
2358        a1: *const ::std::os::raw::c_void,
2359        a2: *const ::std::os::raw::c_void,
2360        a3: *const ::std::os::raw::c_void,
2361    );
2362}
2363pub type FP_String_Format3 = ::std::option::Option<
2364    unsafe extern "C" fn(
2365        str_: *mut cc_string,
2366        format: *const ::std::os::raw::c_char,
2367        a1: *const ::std::os::raw::c_void,
2368        a2: *const ::std::os::raw::c_void,
2369        a3: *const ::std::os::raw::c_void,
2370    ),
2371>;
2372unsafe extern "C" {
2373    pub fn String_Format4(
2374        str_: *mut cc_string,
2375        format: *const ::std::os::raw::c_char,
2376        a1: *const ::std::os::raw::c_void,
2377        a2: *const ::std::os::raw::c_void,
2378        a3: *const ::std::os::raw::c_void,
2379        a4: *const ::std::os::raw::c_void,
2380    );
2381}
2382pub type FP_String_Format4 = ::std::option::Option<
2383    unsafe extern "C" fn(
2384        str_: *mut cc_string,
2385        format: *const ::std::os::raw::c_char,
2386        a1: *const ::std::os::raw::c_void,
2387        a2: *const ::std::os::raw::c_void,
2388        a3: *const ::std::os::raw::c_void,
2389        a4: *const ::std::os::raw::c_void,
2390    ),
2391>;
2392unsafe extern "C" {
2393    pub fn Convert_TryCodepointToCP437(cp: cc_codepoint, c: *mut ::std::os::raw::c_char)
2394    -> cc_bool;
2395}
2396unsafe extern "C" {
2397    pub fn String_AppendUtf16(
2398        str_: *mut cc_string,
2399        data: *const ::std::os::raw::c_void,
2400        numBytes: ::std::os::raw::c_int,
2401    );
2402}
2403unsafe extern "C" {
2404    pub fn String_AppendUtf8(
2405        str_: *mut cc_string,
2406        data: *const ::std::os::raw::c_void,
2407        numBytes: ::std::os::raw::c_int,
2408    );
2409}
2410unsafe extern "C" {
2411    pub fn String_AppendCP1252(
2412        str_: *mut cc_string,
2413        data: *const ::std::os::raw::c_void,
2414        numBytes: ::std::os::raw::c_int,
2415    );
2416}
2417unsafe extern "C" {
2418    pub fn String_EncodeUtf8(
2419        data: *mut ::std::os::raw::c_void,
2420        src: *const cc_string,
2421    ) -> ::std::os::raw::c_int;
2422}
2423unsafe extern "C" {
2424    pub fn Convert_ParseUInt8(str_: *const cc_string, value: *mut cc_uint8) -> cc_bool;
2425}
2426unsafe extern "C" {
2427    pub fn Convert_ParseUInt16(str_: *const cc_string, value: *mut cc_uint16) -> cc_bool;
2428}
2429unsafe extern "C" {
2430    pub fn Convert_ParseInt(str_: *const cc_string, value: *mut ::std::os::raw::c_int) -> cc_bool;
2431}
2432unsafe extern "C" {
2433    pub fn Convert_ParseUInt64(str_: *const cc_string, value: *mut cc_uint64) -> cc_bool;
2434}
2435unsafe extern "C" {
2436    pub fn Convert_ParseFloat(str_: *const cc_string, value: *mut f32) -> cc_bool;
2437}
2438unsafe extern "C" {
2439    pub fn Convert_ParseBool(str_: *const cc_string, value: *mut cc_bool) -> cc_bool;
2440}
2441unsafe extern "C" {
2442    pub fn StringsBuffer_UNSAFE_Get(
2443        buffer: *mut StringsBuffer,
2444        i: ::std::os::raw::c_int,
2445    ) -> cc_string;
2446}
2447unsafe extern "C" {
2448    pub fn StringsBuffer_Add(buffer: *mut StringsBuffer, str_: *const cc_string);
2449}
2450unsafe extern "C" {
2451    pub fn StringsBuffer_Remove(buffer: *mut StringsBuffer, index: ::std::os::raw::c_int);
2452}
2453pub const NameMode_NAME_MODE_NONE: NameMode = 0;
2454pub const NameMode_NAME_MODE_HOVERED: NameMode = 1;
2455pub const NameMode_NAME_MODE_ALL: NameMode = 2;
2456pub const NameMode_NAME_MODE_ALL_HOVERED: NameMode = 3;
2457pub const NameMode_NAME_MODE_ALL_UNSCALED: NameMode = 4;
2458pub const NameMode_NAME_MODE_COUNT: NameMode = 5;
2459pub type NameMode = ::std::os::raw::c_int;
2460pub const ShadowMode_SHADOW_MODE_NONE: ShadowMode = 0;
2461pub const ShadowMode_SHADOW_MODE_SNAP_TO_BLOCK: ShadowMode = 1;
2462pub const ShadowMode_SHADOW_MODE_CIRCLE: ShadowMode = 2;
2463pub const ShadowMode_SHADOW_MODE_CIRCLE_ALL: ShadowMode = 3;
2464pub const ShadowMode_SHADOW_MODE_COUNT: ShadowMode = 4;
2465pub type ShadowMode = ::std::os::raw::c_int;
2466pub const EntityType_ENTITY_TYPE_NONE: EntityType = 0;
2467pub const EntityType_ENTITY_TYPE_PLAYER: EntityType = 1;
2468pub type EntityType = ::std::os::raw::c_int;
2469#[repr(C)]
2470#[derive(Debug, Copy, Clone, PartialEq)]
2471pub struct LocationUpdate {
2472    pub pos: Vec3,
2473    pub pitch: f32,
2474    pub yaw: f32,
2475    pub rotX: f32,
2476    pub rotZ: f32,
2477    pub flags: cc_uint8,
2478}
2479#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2480const _: () = {
2481    ["Size of LocationUpdate"][::std::mem::size_of::<LocationUpdate>() - 32usize];
2482    ["Alignment of LocationUpdate"][::std::mem::align_of::<LocationUpdate>() - 4usize];
2483    ["Offset of field: LocationUpdate::pos"][::std::mem::offset_of!(LocationUpdate, pos) - 0usize];
2484    ["Offset of field: LocationUpdate::pitch"]
2485        [::std::mem::offset_of!(LocationUpdate, pitch) - 12usize];
2486    ["Offset of field: LocationUpdate::yaw"][::std::mem::offset_of!(LocationUpdate, yaw) - 16usize];
2487    ["Offset of field: LocationUpdate::rotX"]
2488        [::std::mem::offset_of!(LocationUpdate, rotX) - 20usize];
2489    ["Offset of field: LocationUpdate::rotZ"]
2490        [::std::mem::offset_of!(LocationUpdate, rotZ) - 24usize];
2491    ["Offset of field: LocationUpdate::flags"]
2492        [::std::mem::offset_of!(LocationUpdate, flags) - 28usize];
2493};
2494#[repr(C)]
2495#[derive(Debug, Copy, Clone, PartialEq)]
2496pub struct EntityLocation {
2497    pub pos: Vec3,
2498    pub pitch: f32,
2499    pub yaw: f32,
2500    pub rotX: f32,
2501    pub rotY: f32,
2502    pub rotZ: f32,
2503}
2504#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2505const _: () = {
2506    ["Size of EntityLocation"][::std::mem::size_of::<EntityLocation>() - 32usize];
2507    ["Alignment of EntityLocation"][::std::mem::align_of::<EntityLocation>() - 4usize];
2508    ["Offset of field: EntityLocation::pos"][::std::mem::offset_of!(EntityLocation, pos) - 0usize];
2509    ["Offset of field: EntityLocation::pitch"]
2510        [::std::mem::offset_of!(EntityLocation, pitch) - 12usize];
2511    ["Offset of field: EntityLocation::yaw"][::std::mem::offset_of!(EntityLocation, yaw) - 16usize];
2512    ["Offset of field: EntityLocation::rotX"]
2513        [::std::mem::offset_of!(EntityLocation, rotX) - 20usize];
2514    ["Offset of field: EntityLocation::rotY"]
2515        [::std::mem::offset_of!(EntityLocation, rotY) - 24usize];
2516    ["Offset of field: EntityLocation::rotZ"]
2517        [::std::mem::offset_of!(EntityLocation, rotZ) - 28usize];
2518};
2519#[repr(C)]
2520#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2521pub struct EntityVTABLE {
2522    pub Tick: ::std::option::Option<unsafe extern "C" fn(e: *mut Entity, delta: f32)>,
2523    pub Despawn: ::std::option::Option<unsafe extern "C" fn(e: *mut Entity)>,
2524    pub SetLocation:
2525        ::std::option::Option<unsafe extern "C" fn(e: *mut Entity, update: *mut LocationUpdate)>,
2526    pub GetCol: ::std::option::Option<unsafe extern "C" fn(e: *mut Entity) -> PackedCol>,
2527    pub RenderModel:
2528        ::std::option::Option<unsafe extern "C" fn(e: *mut Entity, delta: f32, t: f32)>,
2529    pub ShouldRenderName: ::std::option::Option<unsafe extern "C" fn(e: *mut Entity) -> cc_bool>,
2530}
2531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2532const _: () = {
2533    ["Size of EntityVTABLE"][::std::mem::size_of::<EntityVTABLE>() - 48usize];
2534    ["Alignment of EntityVTABLE"][::std::mem::align_of::<EntityVTABLE>() - 8usize];
2535    ["Offset of field: EntityVTABLE::Tick"][::std::mem::offset_of!(EntityVTABLE, Tick) - 0usize];
2536    ["Offset of field: EntityVTABLE::Despawn"]
2537        [::std::mem::offset_of!(EntityVTABLE, Despawn) - 8usize];
2538    ["Offset of field: EntityVTABLE::SetLocation"]
2539        [::std::mem::offset_of!(EntityVTABLE, SetLocation) - 16usize];
2540    ["Offset of field: EntityVTABLE::GetCol"]
2541        [::std::mem::offset_of!(EntityVTABLE, GetCol) - 24usize];
2542    ["Offset of field: EntityVTABLE::RenderModel"]
2543        [::std::mem::offset_of!(EntityVTABLE, RenderModel) - 32usize];
2544    ["Offset of field: EntityVTABLE::ShouldRenderName"]
2545        [::std::mem::offset_of!(EntityVTABLE, ShouldRenderName) - 40usize];
2546};
2547#[repr(C)]
2548#[derive(Debug, PartialEq)]
2549pub struct Entity {
2550    pub VTABLE: *const EntityVTABLE,
2551    pub Position: Vec3,
2552    pub Pitch: f32,
2553    pub Yaw: f32,
2554    pub RotX: f32,
2555    pub RotY: f32,
2556    pub RotZ: f32,
2557    pub Velocity: Vec3,
2558    pub Model: *mut Model,
2559    pub ModelBlock: BlockID,
2560    pub Flags: cc_uint8,
2561    pub ShouldRender: cc_bool,
2562    pub ModelAABB: AABB,
2563    pub ModelScale: Vec3,
2564    pub Size: Vec3,
2565    pub _skinReqID: ::std::os::raw::c_int,
2566    pub SkinType: cc_uint8,
2567    pub SkinFetchState: cc_uint8,
2568    pub NoShade: cc_bool,
2569    pub OnGround: cc_bool,
2570    pub TextureId: GfxResourceID,
2571    pub MobTextureId: GfxResourceID,
2572    pub uScale: f32,
2573    pub vScale: f32,
2574    pub Anim: AnimatedComp,
2575    pub SkinRaw: [::std::os::raw::c_char; 64usize],
2576    pub NameRaw: [::std::os::raw::c_char; 64usize],
2577    pub NameTex: Texture,
2578    pub prev: EntityLocation,
2579    pub next: EntityLocation,
2580    pub ModelVB: GfxResourceID,
2581}
2582#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2583const _: () = {
2584    ["Size of Entity"][::std::mem::size_of::<Entity>() - 464usize];
2585    ["Alignment of Entity"][::std::mem::align_of::<Entity>() - 8usize];
2586    ["Offset of field: Entity::VTABLE"][::std::mem::offset_of!(Entity, VTABLE) - 0usize];
2587    ["Offset of field: Entity::Position"][::std::mem::offset_of!(Entity, Position) - 8usize];
2588    ["Offset of field: Entity::Pitch"][::std::mem::offset_of!(Entity, Pitch) - 20usize];
2589    ["Offset of field: Entity::Yaw"][::std::mem::offset_of!(Entity, Yaw) - 24usize];
2590    ["Offset of field: Entity::RotX"][::std::mem::offset_of!(Entity, RotX) - 28usize];
2591    ["Offset of field: Entity::RotY"][::std::mem::offset_of!(Entity, RotY) - 32usize];
2592    ["Offset of field: Entity::RotZ"][::std::mem::offset_of!(Entity, RotZ) - 36usize];
2593    ["Offset of field: Entity::Velocity"][::std::mem::offset_of!(Entity, Velocity) - 40usize];
2594    ["Offset of field: Entity::Model"][::std::mem::offset_of!(Entity, Model) - 56usize];
2595    ["Offset of field: Entity::ModelBlock"][::std::mem::offset_of!(Entity, ModelBlock) - 64usize];
2596    ["Offset of field: Entity::Flags"][::std::mem::offset_of!(Entity, Flags) - 66usize];
2597    ["Offset of field: Entity::ShouldRender"]
2598        [::std::mem::offset_of!(Entity, ShouldRender) - 67usize];
2599    ["Offset of field: Entity::ModelAABB"][::std::mem::offset_of!(Entity, ModelAABB) - 68usize];
2600    ["Offset of field: Entity::ModelScale"][::std::mem::offset_of!(Entity, ModelScale) - 92usize];
2601    ["Offset of field: Entity::Size"][::std::mem::offset_of!(Entity, Size) - 104usize];
2602    ["Offset of field: Entity::_skinReqID"][::std::mem::offset_of!(Entity, _skinReqID) - 116usize];
2603    ["Offset of field: Entity::SkinType"][::std::mem::offset_of!(Entity, SkinType) - 120usize];
2604    ["Offset of field: Entity::SkinFetchState"]
2605        [::std::mem::offset_of!(Entity, SkinFetchState) - 121usize];
2606    ["Offset of field: Entity::NoShade"][::std::mem::offset_of!(Entity, NoShade) - 122usize];
2607    ["Offset of field: Entity::OnGround"][::std::mem::offset_of!(Entity, OnGround) - 123usize];
2608    ["Offset of field: Entity::TextureId"][::std::mem::offset_of!(Entity, TextureId) - 128usize];
2609    ["Offset of field: Entity::MobTextureId"]
2610        [::std::mem::offset_of!(Entity, MobTextureId) - 136usize];
2611    ["Offset of field: Entity::uScale"][::std::mem::offset_of!(Entity, uScale) - 144usize];
2612    ["Offset of field: Entity::vScale"][::std::mem::offset_of!(Entity, vScale) - 148usize];
2613    ["Offset of field: Entity::Anim"][::std::mem::offset_of!(Entity, Anim) - 152usize];
2614    ["Offset of field: Entity::SkinRaw"][::std::mem::offset_of!(Entity, SkinRaw) - 232usize];
2615    ["Offset of field: Entity::NameRaw"][::std::mem::offset_of!(Entity, NameRaw) - 296usize];
2616    ["Offset of field: Entity::NameTex"][::std::mem::offset_of!(Entity, NameTex) - 360usize];
2617    ["Offset of field: Entity::prev"][::std::mem::offset_of!(Entity, prev) - 392usize];
2618    ["Offset of field: Entity::next"][::std::mem::offset_of!(Entity, next) - 424usize];
2619    ["Offset of field: Entity::ModelVB"][::std::mem::offset_of!(Entity, ModelVB) - 456usize];
2620};
2621pub type Entity_TouchesCondition =
2622    ::std::option::Option<unsafe extern "C" fn(block: BlockID) -> cc_bool>;
2623unsafe extern "C" {
2624    pub fn Entity_GetTransform(e: *mut Entity, pos: Vec3, scale: Vec3, m: *mut Matrix);
2625}
2626unsafe extern "C" {
2627    pub fn Entity_SetModel(e: *mut Entity, model: *const cc_string);
2628}
2629unsafe extern "C" {
2630    pub fn Entity_TouchesAny(bb: *mut AABB, cond: Entity_TouchesCondition) -> cc_bool;
2631}
2632#[repr(C)]
2633#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2634pub struct _EntitiesData {
2635    pub List: [*mut Entity; 256usize],
2636    pub NamesMode: cc_uint8,
2637    pub ShadowsMode: cc_uint8,
2638    pub CurPlayer: *mut LocalPlayer,
2639}
2640#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2641const _: () = {
2642    ["Size of _EntitiesData"][::std::mem::size_of::<_EntitiesData>() - 2064usize];
2643    ["Alignment of _EntitiesData"][::std::mem::align_of::<_EntitiesData>() - 8usize];
2644    ["Offset of field: _EntitiesData::List"][::std::mem::offset_of!(_EntitiesData, List) - 0usize];
2645    ["Offset of field: _EntitiesData::NamesMode"]
2646        [::std::mem::offset_of!(_EntitiesData, NamesMode) - 2048usize];
2647    ["Offset of field: _EntitiesData::ShadowsMode"]
2648        [::std::mem::offset_of!(_EntitiesData, ShadowsMode) - 2049usize];
2649    ["Offset of field: _EntitiesData::CurPlayer"]
2650        [::std::mem::offset_of!(_EntitiesData, CurPlayer) - 2056usize];
2651};
2652#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
2653    pub static mut Entities: _EntitiesData;
2654}
2655#[repr(C)]
2656#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2657pub struct _TabListData {
2658    pub NameOffsets: [cc_uint16; 256usize],
2659    pub GroupRanks: [cc_uint8; 256usize],
2660    pub _buffer: StringsBuffer,
2661    pub _entityLinked: [cc_uint8; 32usize],
2662}
2663#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2664const _: () = {
2665    ["Size of _TabListData"][::std::mem::size_of::<_TabListData>() - 5960usize];
2666    ["Alignment of _TabListData"][::std::mem::align_of::<_TabListData>() - 8usize];
2667    ["Offset of field: _TabListData::NameOffsets"]
2668        [::std::mem::offset_of!(_TabListData, NameOffsets) - 0usize];
2669    ["Offset of field: _TabListData::GroupRanks"]
2670        [::std::mem::offset_of!(_TabListData, GroupRanks) - 512usize];
2671    ["Offset of field: _TabListData::_buffer"]
2672        [::std::mem::offset_of!(_TabListData, _buffer) - 768usize];
2673    ["Offset of field: _TabListData::_entityLinked"]
2674        [::std::mem::offset_of!(_TabListData, _entityLinked) - 5928usize];
2675};
2676#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
2677    pub static mut TabList: _TabListData;
2678}
2679unsafe extern "C" {
2680    pub fn TabList_Remove(id: EntityID);
2681}
2682unsafe extern "C" {
2683    pub fn TabList_Set(
2684        id: EntityID,
2685        player: *const cc_string,
2686        list: *const cc_string,
2687        group: *const cc_string,
2688        rank: cc_uint8,
2689    );
2690}
2691#[repr(C)]
2692#[derive(Debug, PartialEq)]
2693pub struct NetPlayer {
2694    pub Base: Entity,
2695    pub Interp: NetInterpComp,
2696}
2697#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2698const _: () = {
2699    ["Size of NetPlayer"][::std::mem::size_of::<NetPlayer>() - 848usize];
2700    ["Alignment of NetPlayer"][::std::mem::align_of::<NetPlayer>() - 8usize];
2701    ["Offset of field: NetPlayer::Base"][::std::mem::offset_of!(NetPlayer, Base) - 0usize];
2702    ["Offset of field: NetPlayer::Interp"][::std::mem::offset_of!(NetPlayer, Interp) - 464usize];
2703};
2704unsafe extern "C" {
2705    pub fn NetPlayer_Init(player: *mut NetPlayer);
2706}
2707#[repr(C)]
2708#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2709pub struct LocalPlayerInput {
2710    pub GetMovement: ::std::option::Option<
2711        unsafe extern "C" fn(p: *mut LocalPlayer, xMoving: *mut f32, zMoving: *mut f32),
2712    >,
2713    pub next: *mut LocalPlayerInput,
2714}
2715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2716const _: () = {
2717    ["Size of LocalPlayerInput"][::std::mem::size_of::<LocalPlayerInput>() - 16usize];
2718    ["Alignment of LocalPlayerInput"][::std::mem::align_of::<LocalPlayerInput>() - 8usize];
2719    ["Offset of field: LocalPlayerInput::GetMovement"]
2720        [::std::mem::offset_of!(LocalPlayerInput, GetMovement) - 0usize];
2721    ["Offset of field: LocalPlayerInput::next"]
2722        [::std::mem::offset_of!(LocalPlayerInput, next) - 8usize];
2723};
2724#[repr(C)]
2725#[derive(Debug, PartialEq)]
2726pub struct LocalPlayer {
2727    pub Base: Entity,
2728    pub Spawn: Vec3,
2729    pub OldVelocity: Vec3,
2730    pub SpawnYaw: f32,
2731    pub SpawnPitch: f32,
2732    pub ReachDistance: f32,
2733    pub Hacks: HacksComp,
2734    pub Tilt: TiltComp,
2735    pub Interp: InterpComp,
2736    pub Collisions: CollisionsComp,
2737    pub Physics: PhysicsComp,
2738    pub _warnedRespawn: cc_bool,
2739    pub _warnedFly: cc_bool,
2740    pub _warnedNoclip: cc_bool,
2741    pub _warnedZoom: cc_bool,
2742    pub index: cc_uint8,
2743}
2744#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2745const _: () = {
2746    ["Size of LocalPlayer"][::std::mem::size_of::<LocalPlayer>() - 864usize];
2747    ["Alignment of LocalPlayer"][::std::mem::align_of::<LocalPlayer>() - 8usize];
2748    ["Offset of field: LocalPlayer::Base"][::std::mem::offset_of!(LocalPlayer, Base) - 0usize];
2749    ["Offset of field: LocalPlayer::Spawn"][::std::mem::offset_of!(LocalPlayer, Spawn) - 464usize];
2750    ["Offset of field: LocalPlayer::OldVelocity"]
2751        [::std::mem::offset_of!(LocalPlayer, OldVelocity) - 476usize];
2752    ["Offset of field: LocalPlayer::SpawnYaw"]
2753        [::std::mem::offset_of!(LocalPlayer, SpawnYaw) - 488usize];
2754    ["Offset of field: LocalPlayer::SpawnPitch"]
2755        [::std::mem::offset_of!(LocalPlayer, SpawnPitch) - 492usize];
2756    ["Offset of field: LocalPlayer::ReachDistance"]
2757        [::std::mem::offset_of!(LocalPlayer, ReachDistance) - 496usize];
2758    ["Offset of field: LocalPlayer::Hacks"][::std::mem::offset_of!(LocalPlayer, Hacks) - 504usize];
2759    ["Offset of field: LocalPlayer::Tilt"][::std::mem::offset_of!(LocalPlayer, Tilt) - 696usize];
2760    ["Offset of field: LocalPlayer::Interp"]
2761        [::std::mem::offset_of!(LocalPlayer, Interp) - 716usize];
2762    ["Offset of field: LocalPlayer::Collisions"]
2763        [::std::mem::offset_of!(LocalPlayer, Collisions) - 784usize];
2764    ["Offset of field: LocalPlayer::Physics"]
2765        [::std::mem::offset_of!(LocalPlayer, Physics) - 808usize];
2766    ["Offset of field: LocalPlayer::_warnedRespawn"]
2767        [::std::mem::offset_of!(LocalPlayer, _warnedRespawn) - 856usize];
2768    ["Offset of field: LocalPlayer::_warnedFly"]
2769        [::std::mem::offset_of!(LocalPlayer, _warnedFly) - 857usize];
2770    ["Offset of field: LocalPlayer::_warnedNoclip"]
2771        [::std::mem::offset_of!(LocalPlayer, _warnedNoclip) - 858usize];
2772    ["Offset of field: LocalPlayer::_warnedZoom"]
2773        [::std::mem::offset_of!(LocalPlayer, _warnedZoom) - 859usize];
2774    ["Offset of field: LocalPlayer::index"][::std::mem::offset_of!(LocalPlayer, index) - 860usize];
2775};
2776pub const CC_ERRORS_ERROR_BASE: CC_ERRORS = -857812992;
2777pub const CC_ERRORS_ERR_END_OF_STREAM: CC_ERRORS = -857812991;
2778pub const CC_ERRORS_ERR_NOT_SUPPORTED: CC_ERRORS = -857812990;
2779pub const CC_ERRORS_ERR_INVALID_ARGUMENT: CC_ERRORS = -857812989;
2780pub const CC_ERRORS_ERR_OUT_OF_MEMORY: CC_ERRORS = -857812988;
2781pub const CC_ERRORS_OGG_ERR_INVALID_SIG: CC_ERRORS = -857812987;
2782pub const CC_ERRORS_OGG_ERR_VERSION: CC_ERRORS = -857812986;
2783pub const CC_ERRORS_WAV_ERR_STREAM_HDR: CC_ERRORS = -857812985;
2784pub const CC_ERRORS_WAV_ERR_STREAM_TYPE: CC_ERRORS = -857812984;
2785pub const CC_ERRORS_WAV_ERR_DATA_TYPE: CC_ERRORS = -857812983;
2786pub const CC_ERRORS_AUDIO_ERR_MP3_SIG: CC_ERRORS = -857812982;
2787pub const CC_ERRORS_WAV_ERR_SAMPLE_BITS: CC_ERRORS = -857812981;
2788pub const CC_ERRORS_SFD_ERR_NEED_DEFAULT_NAME: CC_ERRORS = -857812980;
2789pub const CC_ERRORS_VORBIS_ERR_WRONG_HEADER: CC_ERRORS = -857812979;
2790pub const CC_ERRORS_VORBIS_ERR_FRAMING: CC_ERRORS = -857812978;
2791pub const CC_ERRORS_VORBIS_ERR_VERSION: CC_ERRORS = -857812977;
2792pub const CC_ERRORS_VORBIS_ERR_BLOCKSIZE: CC_ERRORS = -857812976;
2793pub const CC_ERRORS_VORBIS_ERR_CHANS: CC_ERRORS = -857812975;
2794pub const CC_ERRORS_VORBIS_ERR_TIME_TYPE: CC_ERRORS = -857812974;
2795pub const CC_ERRORS_VORBIS_ERR_FLOOR_TYPE: CC_ERRORS = -857812973;
2796pub const CC_ERRORS_VORBIS_ERR_RESIDUE_TYPE: CC_ERRORS = -857812972;
2797pub const CC_ERRORS_VORBIS_ERR_MAPPING_TYPE: CC_ERRORS = -857812971;
2798pub const CC_ERRORS_VORBIS_ERR_MODE_TYPE: CC_ERRORS = -857812970;
2799pub const CC_ERRORS_VORBIS_ERR_CODEBOOK_SYNC: CC_ERRORS = -857812969;
2800pub const CC_ERRORS_VORBIS_ERR_CODEBOOK_ENTRY: CC_ERRORS = -857812968;
2801pub const CC_ERRORS_VORBIS_ERR_CODEBOOK_LOOKUP: CC_ERRORS = -857812967;
2802pub const CC_ERRORS_VORBIS_ERR_MODE_WINDOW: CC_ERRORS = -857812966;
2803pub const CC_ERRORS_VORBIS_ERR_MODE_TRANSFORM: CC_ERRORS = -857812965;
2804pub const CC_ERRORS_VORBIS_ERR_MAPPING_CHANS: CC_ERRORS = -857812964;
2805pub const CC_ERRORS_VORBIS_ERR_MAPPING_RESERVED: CC_ERRORS = -857812963;
2806pub const CC_ERRORS_VORBIS_ERR_FRAME_TYPE: CC_ERRORS = -857812962;
2807pub const CC_ERRORS_PNG_ERR_INVALID_SIG: CC_ERRORS = -857812961;
2808pub const CC_ERRORS_PNG_ERR_INVALID_HDR_SIZE: CC_ERRORS = -857812960;
2809pub const CC_ERRORS_PNG_ERR_TOO_WIDE: CC_ERRORS = -857812959;
2810pub const CC_ERRORS_PNG_ERR_TOO_TALL: CC_ERRORS = -857812958;
2811pub const CC_ERRORS_PNG_ERR_INVALID_COL_BPP: CC_ERRORS = -857812957;
2812pub const CC_ERRORS_PNG_ERR_COMP_METHOD: CC_ERRORS = -857812956;
2813pub const CC_ERRORS_PNG_ERR_FILTER: CC_ERRORS = -857812955;
2814pub const CC_ERRORS_PNG_ERR_INTERLACED: CC_ERRORS = -857812954;
2815pub const CC_ERRORS_PNG_ERR_PAL_SIZE: CC_ERRORS = -857812953;
2816pub const CC_ERRORS_PNG_ERR_TRANS_COUNT: CC_ERRORS = -857812952;
2817pub const CC_ERRORS_PNG_ERR_TRANS_INVALID: CC_ERRORS = -857812951;
2818pub const CC_ERRORS_PNG_ERR_REACHED_IEND: CC_ERRORS = -857812950;
2819pub const CC_ERRORS_PNG_ERR_NO_DATA: CC_ERRORS = -857812949;
2820pub const CC_ERRORS_PNG_ERR_INVALID_SCANLINE: CC_ERRORS = -857812948;
2821pub const CC_ERRORS_ZIP_ERR_TOO_MANY_ENTRIES: CC_ERRORS = -857812947;
2822pub const CC_ERRORS_ZIP_ERR_SEEK_END_OF_CENTRAL_DIR: CC_ERRORS = -857812946;
2823pub const CC_ERRORS_ZIP_ERR_NO_END_OF_CENTRAL_DIR: CC_ERRORS = -857812945;
2824pub const CC_ERRORS_ZIP_ERR_SEEK_CENTRAL_DIR: CC_ERRORS = -857812944;
2825pub const CC_ERRORS_ZIP_ERR_INVALID_CENTRAL_DIR: CC_ERRORS = -857812943;
2826pub const CC_ERRORS_ZIP_ERR_SEEK_LOCAL_DIR: CC_ERRORS = -857812942;
2827pub const CC_ERRORS_ZIP_ERR_INVALID_LOCAL_DIR: CC_ERRORS = -857812941;
2828pub const CC_ERRORS_ZIP_ERR_FILENAME_LEN: CC_ERRORS = -857812940;
2829pub const CC_ERRORS_GZIP_ERR_HEADER1: CC_ERRORS = -857812939;
2830pub const CC_ERRORS_GZIP_ERR_HEADER2: CC_ERRORS = -857812938;
2831pub const CC_ERRORS_GZIP_ERR_METHOD: CC_ERRORS = -857812937;
2832pub const CC_ERRORS_GZIP_ERR_FLAGS: CC_ERRORS = -857812936;
2833pub const CC_ERRORS_ZLIB_ERR_METHOD: CC_ERRORS = -857812935;
2834pub const CC_ERRORS_ZLIB_ERR_FLAGS: CC_ERRORS = -857812934;
2835pub const CC_ERRORS_FCM_ERR_IDENTIFIER: CC_ERRORS = -857812933;
2836pub const CC_ERRORS_FCM_ERR_REVISION: CC_ERRORS = -857812932;
2837pub const CC_ERRORS_LVL_ERR_VERSION: CC_ERRORS = -857812931;
2838pub const CC_ERRORS_DAT_ERR_IDENTIFIER: CC_ERRORS = -857812930;
2839pub const CC_ERRORS_DAT_ERR_VERSION: CC_ERRORS = -857812929;
2840pub const CC_ERRORS_DAT_ERR_JIDENTIFIER: CC_ERRORS = -857812928;
2841pub const CC_ERRORS_DAT_ERR_JVERSION: CC_ERRORS = -857812927;
2842pub const CC_ERRORS_DAT_ERR_ROOT_OBJECT: CC_ERRORS = -857812926;
2843pub const CC_ERRORS_JAVA_ERR_INVALID_TYPECODE: CC_ERRORS = -857812925;
2844pub const CC_ERRORS_JAVA_ERR_JSTRING_LEN: CC_ERRORS = -857812924;
2845pub const CC_ERRORS_JAVA_ERR_JFIELD_CLASS_NAME: CC_ERRORS = -857812923;
2846pub const CC_ERRORS_JAVA_ERR_JCLASS_TYPE: CC_ERRORS = -857812922;
2847pub const CC_ERRORS_JAVA_ERR_JCLASS_FIELDS: CC_ERRORS = -857812921;
2848pub const CC_ERRORS_JAVA_ERR_JCLASS_ANNOTATION: CC_ERRORS = -857812920;
2849pub const CC_ERRORS_JAVA_ERR_JCLASSES_COUNT: CC_ERRORS = -857812919;
2850pub const CC_ERRORS_JAVA_ERR_JCLASS_REFERENCE: CC_ERRORS = -857812918;
2851pub const CC_ERRORS_JAVA_ERR_JOBJECT_FLAGS: CC_ERRORS = -857812917;
2852pub const CC_ERRORS_JAVA_ERR_JVALUE_TYPE: CC_ERRORS = -857812916;
2853pub const CC_ERRORS_SOCK_ERR_UNKNOWN_HOST: CC_ERRORS = -857812913;
2854pub const CC_ERRORS_NBT_ERR_UNKNOWN: CC_ERRORS = -857812912;
2855pub const CC_ERRORS_CW_ERR_ROOT_TAG: CC_ERRORS = -857812911;
2856pub const CC_ERRORS_CW_ERR_STRING_LEN: CC_ERRORS = -857812910;
2857pub const CC_ERRORS_CW_ERR_UUID_LEN: CC_ERRORS = -857812909;
2858pub const CC_ERRORS_AL_ERR_INIT_DEVICE: CC_ERRORS = -857812908;
2859pub const CC_ERRORS_AL_ERR_INIT_CONTEXT: CC_ERRORS = -857812907;
2860pub const CC_ERRORS_INF_ERR_BLOCKTYPE: CC_ERRORS = -857812906;
2861pub const CC_ERRORS_INF_ERR_LEN_VERIFY: CC_ERRORS = -857812905;
2862pub const CC_ERRORS_INF_ERR_REPEAT_BEG: CC_ERRORS = -857812904;
2863pub const CC_ERRORS_INF_ERR_REPEAT_END: CC_ERRORS = -857812903;
2864pub const CC_ERRORS_INF_ERR_INVALID_CODE: CC_ERRORS = -857812902;
2865pub const CC_ERRORS_INF_ERR_NUM_CODES: CC_ERRORS = -857812901;
2866pub const CC_ERRORS_ERR_DOWNLOAD_INVALID: CC_ERRORS = -857812900;
2867pub const CC_ERRORS_ERR_NO_AUDIO_OUTPUT: CC_ERRORS = -857812899;
2868pub const CC_ERRORS_ERR_INVALID_DATA_URL: CC_ERRORS = -857812898;
2869pub const CC_ERRORS_ERR_INVALID_OPEN_URL: CC_ERRORS = -857812897;
2870pub const CC_ERRORS_NBT_ERR_EXPECTED_I8: CC_ERRORS = -857812896;
2871pub const CC_ERRORS_NBT_ERR_EXPECTED_I16: CC_ERRORS = -857812895;
2872pub const CC_ERRORS_NBT_ERR_EXPECTED_I32: CC_ERRORS = -857812894;
2873pub const CC_ERRORS_NBT_ERR_EXPECTED_F32: CC_ERRORS = -857812893;
2874pub const CC_ERRORS_NBT_ERR_EXPECTED_STR: CC_ERRORS = -857812892;
2875pub const CC_ERRORS_NBT_ERR_EXPECTED_ARR: CC_ERRORS = -857812891;
2876pub const CC_ERRORS_NBT_ERR_ARR_TOO_SMALL: CC_ERRORS = -857812890;
2877pub const CC_ERRORS_HTTP_ERR_NO_SSL: CC_ERRORS = -857812889;
2878pub const CC_ERRORS_HTTP_ERR_REDIRECTS: CC_ERRORS = -857812888;
2879pub const CC_ERRORS_HTTP_ERR_RELATIVE: CC_ERRORS = -857812887;
2880pub const CC_ERRORS_HTTP_ERR_INVALID_BODY: CC_ERRORS = -857812886;
2881pub const CC_ERRORS_HTTP_ERR_CHUNK_SIZE: CC_ERRORS = -857812885;
2882pub const CC_ERRORS_HTTP_ERR_TRUNCATED: CC_ERRORS = -857812884;
2883pub const CC_ERRORS_HTTP_ERR_NO_RESPONSE: CC_ERRORS = -857812883;
2884pub const CC_ERRORS_SSL_ERR_CONTEXT_DEAD: CC_ERRORS = -857812880;
2885pub const CC_ERRORS_PNG_ERR_16BITSAMPLES: CC_ERRORS = -857812879;
2886pub const CC_ERRORS_ERR_NO_NETWORKING: CC_ERRORS = -857812878;
2887pub type CC_ERRORS = ::std::os::raw::c_int;
2888pub type Event_Void_Callback =
2889    ::std::option::Option<unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void)>;
2890#[repr(C)]
2891#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2892pub struct Event_Void {
2893    pub Handlers: [Event_Void_Callback; 32usize],
2894    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
2895    pub Count: ::std::os::raw::c_int,
2896}
2897#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2898const _: () = {
2899    ["Size of Event_Void"][::std::mem::size_of::<Event_Void>() - 520usize];
2900    ["Alignment of Event_Void"][::std::mem::align_of::<Event_Void>() - 8usize];
2901    ["Offset of field: Event_Void::Handlers"]
2902        [::std::mem::offset_of!(Event_Void, Handlers) - 0usize];
2903    ["Offset of field: Event_Void::Objs"][::std::mem::offset_of!(Event_Void, Objs) - 256usize];
2904    ["Offset of field: Event_Void::Count"][::std::mem::offset_of!(Event_Void, Count) - 512usize];
2905};
2906pub type Event_Int_Callback = ::std::option::Option<
2907    unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, argument: ::std::os::raw::c_int),
2908>;
2909#[repr(C)]
2910#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2911pub struct Event_Int {
2912    pub Handlers: [Event_Int_Callback; 32usize],
2913    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
2914    pub Count: ::std::os::raw::c_int,
2915}
2916#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2917const _: () = {
2918    ["Size of Event_Int"][::std::mem::size_of::<Event_Int>() - 520usize];
2919    ["Alignment of Event_Int"][::std::mem::align_of::<Event_Int>() - 8usize];
2920    ["Offset of field: Event_Int::Handlers"][::std::mem::offset_of!(Event_Int, Handlers) - 0usize];
2921    ["Offset of field: Event_Int::Objs"][::std::mem::offset_of!(Event_Int, Objs) - 256usize];
2922    ["Offset of field: Event_Int::Count"][::std::mem::offset_of!(Event_Int, Count) - 512usize];
2923};
2924pub type Event_Float_Callback =
2925    ::std::option::Option<unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, argument: f32)>;
2926#[repr(C)]
2927#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2928pub struct Event_Float {
2929    pub Handlers: [Event_Float_Callback; 32usize],
2930    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
2931    pub Count: ::std::os::raw::c_int,
2932}
2933#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2934const _: () = {
2935    ["Size of Event_Float"][::std::mem::size_of::<Event_Float>() - 520usize];
2936    ["Alignment of Event_Float"][::std::mem::align_of::<Event_Float>() - 8usize];
2937    ["Offset of field: Event_Float::Handlers"]
2938        [::std::mem::offset_of!(Event_Float, Handlers) - 0usize];
2939    ["Offset of field: Event_Float::Objs"][::std::mem::offset_of!(Event_Float, Objs) - 256usize];
2940    ["Offset of field: Event_Float::Count"][::std::mem::offset_of!(Event_Float, Count) - 512usize];
2941};
2942pub type Event_Entry_Callback = ::std::option::Option<
2943    unsafe extern "C" fn(
2944        obj: *mut ::std::os::raw::c_void,
2945        stream: *mut Stream,
2946        name: *const cc_string,
2947    ),
2948>;
2949#[repr(C)]
2950#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2951pub struct Event_Entry {
2952    pub Handlers: [Event_Entry_Callback; 32usize],
2953    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
2954    pub Count: ::std::os::raw::c_int,
2955}
2956#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2957const _: () = {
2958    ["Size of Event_Entry"][::std::mem::size_of::<Event_Entry>() - 520usize];
2959    ["Alignment of Event_Entry"][::std::mem::align_of::<Event_Entry>() - 8usize];
2960    ["Offset of field: Event_Entry::Handlers"]
2961        [::std::mem::offset_of!(Event_Entry, Handlers) - 0usize];
2962    ["Offset of field: Event_Entry::Objs"][::std::mem::offset_of!(Event_Entry, Objs) - 256usize];
2963    ["Offset of field: Event_Entry::Count"][::std::mem::offset_of!(Event_Entry, Count) - 512usize];
2964};
2965pub type Event_Block_Callback = ::std::option::Option<
2966    unsafe extern "C" fn(
2967        obj: *mut ::std::os::raw::c_void,
2968        coords: IVec3,
2969        oldBlock: BlockID,
2970        block: BlockID,
2971    ),
2972>;
2973#[repr(C)]
2974#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2975pub struct Event_Block {
2976    pub Handlers: [Event_Block_Callback; 32usize],
2977    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
2978    pub Count: ::std::os::raw::c_int,
2979}
2980#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2981const _: () = {
2982    ["Size of Event_Block"][::std::mem::size_of::<Event_Block>() - 520usize];
2983    ["Alignment of Event_Block"][::std::mem::align_of::<Event_Block>() - 8usize];
2984    ["Offset of field: Event_Block::Handlers"]
2985        [::std::mem::offset_of!(Event_Block, Handlers) - 0usize];
2986    ["Offset of field: Event_Block::Objs"][::std::mem::offset_of!(Event_Block, Objs) - 256usize];
2987    ["Offset of field: Event_Block::Count"][::std::mem::offset_of!(Event_Block, Count) - 512usize];
2988};
2989pub type Event_Chat_Callback = ::std::option::Option<
2990    unsafe extern "C" fn(
2991        obj: *mut ::std::os::raw::c_void,
2992        msg: *const cc_string,
2993        msgType: ::std::os::raw::c_int,
2994    ),
2995>;
2996#[repr(C)]
2997#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2998pub struct Event_Chat {
2999    pub Handlers: [Event_Chat_Callback; 32usize],
3000    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3001    pub Count: ::std::os::raw::c_int,
3002}
3003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3004const _: () = {
3005    ["Size of Event_Chat"][::std::mem::size_of::<Event_Chat>() - 520usize];
3006    ["Alignment of Event_Chat"][::std::mem::align_of::<Event_Chat>() - 8usize];
3007    ["Offset of field: Event_Chat::Handlers"]
3008        [::std::mem::offset_of!(Event_Chat, Handlers) - 0usize];
3009    ["Offset of field: Event_Chat::Objs"][::std::mem::offset_of!(Event_Chat, Objs) - 256usize];
3010    ["Offset of field: Event_Chat::Count"][::std::mem::offset_of!(Event_Chat, Count) - 512usize];
3011};
3012pub type Event_Input_Callback = ::std::option::Option<
3013    unsafe extern "C" fn(
3014        obj: *mut ::std::os::raw::c_void,
3015        key: ::std::os::raw::c_int,
3016        repeating: cc_bool,
3017        device: *mut InputDevice,
3018    ),
3019>;
3020#[repr(C)]
3021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3022pub struct Event_Input {
3023    pub Handlers: [Event_Input_Callback; 32usize],
3024    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3025    pub Count: ::std::os::raw::c_int,
3026}
3027#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3028const _: () = {
3029    ["Size of Event_Input"][::std::mem::size_of::<Event_Input>() - 520usize];
3030    ["Alignment of Event_Input"][::std::mem::align_of::<Event_Input>() - 8usize];
3031    ["Offset of field: Event_Input::Handlers"]
3032        [::std::mem::offset_of!(Event_Input, Handlers) - 0usize];
3033    ["Offset of field: Event_Input::Objs"][::std::mem::offset_of!(Event_Input, Objs) - 256usize];
3034    ["Offset of field: Event_Input::Count"][::std::mem::offset_of!(Event_Input, Count) - 512usize];
3035};
3036pub type Event_String_Callback = ::std::option::Option<
3037    unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, str_: *const cc_string),
3038>;
3039#[repr(C)]
3040#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3041pub struct Event_String {
3042    pub Handlers: [Event_String_Callback; 32usize],
3043    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3044    pub Count: ::std::os::raw::c_int,
3045}
3046#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3047const _: () = {
3048    ["Size of Event_String"][::std::mem::size_of::<Event_String>() - 520usize];
3049    ["Alignment of Event_String"][::std::mem::align_of::<Event_String>() - 8usize];
3050    ["Offset of field: Event_String::Handlers"]
3051        [::std::mem::offset_of!(Event_String, Handlers) - 0usize];
3052    ["Offset of field: Event_String::Objs"][::std::mem::offset_of!(Event_String, Objs) - 256usize];
3053    ["Offset of field: Event_String::Count"]
3054        [::std::mem::offset_of!(Event_String, Count) - 512usize];
3055};
3056pub type Event_RawMove_Callback = ::std::option::Option<
3057    unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, xDelta: f32, yDelta: f32),
3058>;
3059#[repr(C)]
3060#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3061pub struct Event_RawMove {
3062    pub Handlers: [Event_RawMove_Callback; 32usize],
3063    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3064    pub Count: ::std::os::raw::c_int,
3065}
3066#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3067const _: () = {
3068    ["Size of Event_RawMove"][::std::mem::size_of::<Event_RawMove>() - 520usize];
3069    ["Alignment of Event_RawMove"][::std::mem::align_of::<Event_RawMove>() - 8usize];
3070    ["Offset of field: Event_RawMove::Handlers"]
3071        [::std::mem::offset_of!(Event_RawMove, Handlers) - 0usize];
3072    ["Offset of field: Event_RawMove::Objs"]
3073        [::std::mem::offset_of!(Event_RawMove, Objs) - 256usize];
3074    ["Offset of field: Event_RawMove::Count"]
3075        [::std::mem::offset_of!(Event_RawMove, Count) - 512usize];
3076};
3077pub type Event_PadAxis_Callback = ::std::option::Option<
3078    unsafe extern "C" fn(
3079        obj: *mut ::std::os::raw::c_void,
3080        port: ::std::os::raw::c_int,
3081        axis: ::std::os::raw::c_int,
3082        x: f32,
3083        y: f32,
3084    ),
3085>;
3086#[repr(C)]
3087#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3088pub struct Event_PadAxis {
3089    pub Handlers: [Event_PadAxis_Callback; 32usize],
3090    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3091    pub Count: ::std::os::raw::c_int,
3092}
3093#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3094const _: () = {
3095    ["Size of Event_PadAxis"][::std::mem::size_of::<Event_PadAxis>() - 520usize];
3096    ["Alignment of Event_PadAxis"][::std::mem::align_of::<Event_PadAxis>() - 8usize];
3097    ["Offset of field: Event_PadAxis::Handlers"]
3098        [::std::mem::offset_of!(Event_PadAxis, Handlers) - 0usize];
3099    ["Offset of field: Event_PadAxis::Objs"]
3100        [::std::mem::offset_of!(Event_PadAxis, Objs) - 256usize];
3101    ["Offset of field: Event_PadAxis::Count"]
3102        [::std::mem::offset_of!(Event_PadAxis, Count) - 512usize];
3103};
3104pub type Event_PluginMessage_Callback = ::std::option::Option<
3105    unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, channel: cc_uint8, data: *mut cc_uint8),
3106>;
3107#[repr(C)]
3108#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3109pub struct Event_PluginMessage {
3110    pub Handlers: [Event_PluginMessage_Callback; 32usize],
3111    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3112    pub Count: ::std::os::raw::c_int,
3113}
3114#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3115const _: () = {
3116    ["Size of Event_PluginMessage"][::std::mem::size_of::<Event_PluginMessage>() - 520usize];
3117    ["Alignment of Event_PluginMessage"][::std::mem::align_of::<Event_PluginMessage>() - 8usize];
3118    ["Offset of field: Event_PluginMessage::Handlers"]
3119        [::std::mem::offset_of!(Event_PluginMessage, Handlers) - 0usize];
3120    ["Offset of field: Event_PluginMessage::Objs"]
3121        [::std::mem::offset_of!(Event_PluginMessage, Objs) - 256usize];
3122    ["Offset of field: Event_PluginMessage::Count"]
3123        [::std::mem::offset_of!(Event_PluginMessage, Count) - 512usize];
3124};
3125pub type Event_LightingMode_Callback = ::std::option::Option<
3126    unsafe extern "C" fn(obj: *mut ::std::os::raw::c_void, oldMode: cc_uint8, fromServer: cc_bool),
3127>;
3128#[repr(C)]
3129#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3130pub struct Event_LightingMode {
3131    pub Handlers: [Event_LightingMode_Callback; 32usize],
3132    pub Objs: [*mut ::std::os::raw::c_void; 32usize],
3133    pub Count: ::std::os::raw::c_int,
3134}
3135#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3136const _: () = {
3137    ["Size of Event_LightingMode"][::std::mem::size_of::<Event_LightingMode>() - 520usize];
3138    ["Alignment of Event_LightingMode"][::std::mem::align_of::<Event_LightingMode>() - 8usize];
3139    ["Offset of field: Event_LightingMode::Handlers"]
3140        [::std::mem::offset_of!(Event_LightingMode, Handlers) - 0usize];
3141    ["Offset of field: Event_LightingMode::Objs"]
3142        [::std::mem::offset_of!(Event_LightingMode, Objs) - 256usize];
3143    ["Offset of field: Event_LightingMode::Count"]
3144        [::std::mem::offset_of!(Event_LightingMode, Count) - 512usize];
3145};
3146unsafe extern "C" {
3147    pub fn Event_Register(
3148        handlers: *mut Event_Void,
3149        obj: *mut ::std::os::raw::c_void,
3150        handler: Event_Void_Callback,
3151    );
3152}
3153unsafe extern "C" {
3154    pub fn Event_Unregister(
3155        handlers: *mut Event_Void,
3156        obj: *mut ::std::os::raw::c_void,
3157        handler: Event_Void_Callback,
3158    );
3159}
3160unsafe extern "C" {
3161    pub fn Event_RaiseVoid(handlers: *mut Event_Void);
3162}
3163unsafe extern "C" {
3164    pub fn Event_RaiseInt(handlers: *mut Event_Int, arg: ::std::os::raw::c_int);
3165}
3166unsafe extern "C" {
3167    pub fn Event_RaiseFloat(handlers: *mut Event_Float, arg: f32);
3168}
3169#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3170    pub static mut EventAPIVersion: ::std::os::raw::c_int;
3171}
3172#[repr(C)]
3173#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3174pub struct _EntityEventsList {
3175    pub Added: Event_Int,
3176    pub Removed: Event_Int,
3177}
3178#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3179const _: () = {
3180    ["Size of _EntityEventsList"][::std::mem::size_of::<_EntityEventsList>() - 1040usize];
3181    ["Alignment of _EntityEventsList"][::std::mem::align_of::<_EntityEventsList>() - 8usize];
3182    ["Offset of field: _EntityEventsList::Added"]
3183        [::std::mem::offset_of!(_EntityEventsList, Added) - 0usize];
3184    ["Offset of field: _EntityEventsList::Removed"]
3185        [::std::mem::offset_of!(_EntityEventsList, Removed) - 520usize];
3186};
3187#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3188    pub static mut EntityEvents: _EntityEventsList;
3189}
3190#[repr(C)]
3191#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3192pub struct _TabListEventsList {
3193    pub Added: Event_Int,
3194    pub Changed: Event_Int,
3195    pub Removed: Event_Int,
3196}
3197#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3198const _: () = {
3199    ["Size of _TabListEventsList"][::std::mem::size_of::<_TabListEventsList>() - 1560usize];
3200    ["Alignment of _TabListEventsList"][::std::mem::align_of::<_TabListEventsList>() - 8usize];
3201    ["Offset of field: _TabListEventsList::Added"]
3202        [::std::mem::offset_of!(_TabListEventsList, Added) - 0usize];
3203    ["Offset of field: _TabListEventsList::Changed"]
3204        [::std::mem::offset_of!(_TabListEventsList, Changed) - 520usize];
3205    ["Offset of field: _TabListEventsList::Removed"]
3206        [::std::mem::offset_of!(_TabListEventsList, Removed) - 1040usize];
3207};
3208#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3209    pub static mut TabListEvents: _TabListEventsList;
3210}
3211#[repr(C)]
3212#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3213pub struct _TextureEventsList {
3214    pub AtlasChanged: Event_Void,
3215    pub PackChanged: Event_Void,
3216    pub FileChanged: Event_Entry,
3217}
3218#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3219const _: () = {
3220    ["Size of _TextureEventsList"][::std::mem::size_of::<_TextureEventsList>() - 1560usize];
3221    ["Alignment of _TextureEventsList"][::std::mem::align_of::<_TextureEventsList>() - 8usize];
3222    ["Offset of field: _TextureEventsList::AtlasChanged"]
3223        [::std::mem::offset_of!(_TextureEventsList, AtlasChanged) - 0usize];
3224    ["Offset of field: _TextureEventsList::PackChanged"]
3225        [::std::mem::offset_of!(_TextureEventsList, PackChanged) - 520usize];
3226    ["Offset of field: _TextureEventsList::FileChanged"]
3227        [::std::mem::offset_of!(_TextureEventsList, FileChanged) - 1040usize];
3228};
3229#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3230    pub static mut TextureEvents: _TextureEventsList;
3231}
3232#[repr(C)]
3233#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3234pub struct _GfxEventsList {
3235    pub ViewDistanceChanged: Event_Void,
3236    pub LowVRAMDetected: Event_Void,
3237    pub ProjectionChanged: Event_Void,
3238    pub ContextLost: Event_Void,
3239    pub ContextRecreated: Event_Void,
3240}
3241#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3242const _: () = {
3243    ["Size of _GfxEventsList"][::std::mem::size_of::<_GfxEventsList>() - 2600usize];
3244    ["Alignment of _GfxEventsList"][::std::mem::align_of::<_GfxEventsList>() - 8usize];
3245    ["Offset of field: _GfxEventsList::ViewDistanceChanged"]
3246        [::std::mem::offset_of!(_GfxEventsList, ViewDistanceChanged) - 0usize];
3247    ["Offset of field: _GfxEventsList::LowVRAMDetected"]
3248        [::std::mem::offset_of!(_GfxEventsList, LowVRAMDetected) - 520usize];
3249    ["Offset of field: _GfxEventsList::ProjectionChanged"]
3250        [::std::mem::offset_of!(_GfxEventsList, ProjectionChanged) - 1040usize];
3251    ["Offset of field: _GfxEventsList::ContextLost"]
3252        [::std::mem::offset_of!(_GfxEventsList, ContextLost) - 1560usize];
3253    ["Offset of field: _GfxEventsList::ContextRecreated"]
3254        [::std::mem::offset_of!(_GfxEventsList, ContextRecreated) - 2080usize];
3255};
3256#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3257    pub static mut GfxEvents: _GfxEventsList;
3258}
3259#[repr(C)]
3260#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3261pub struct _UserEventsList {
3262    pub BlockChanged: Event_Block,
3263    pub HackPermsChanged: Event_Void,
3264    pub HeldBlockChanged: Event_Void,
3265    pub HacksStateChanged: Event_Void,
3266}
3267#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3268const _: () = {
3269    ["Size of _UserEventsList"][::std::mem::size_of::<_UserEventsList>() - 2080usize];
3270    ["Alignment of _UserEventsList"][::std::mem::align_of::<_UserEventsList>() - 8usize];
3271    ["Offset of field: _UserEventsList::BlockChanged"]
3272        [::std::mem::offset_of!(_UserEventsList, BlockChanged) - 0usize];
3273    ["Offset of field: _UserEventsList::HackPermsChanged"]
3274        [::std::mem::offset_of!(_UserEventsList, HackPermsChanged) - 520usize];
3275    ["Offset of field: _UserEventsList::HeldBlockChanged"]
3276        [::std::mem::offset_of!(_UserEventsList, HeldBlockChanged) - 1040usize];
3277    ["Offset of field: _UserEventsList::HacksStateChanged"]
3278        [::std::mem::offset_of!(_UserEventsList, HacksStateChanged) - 1560usize];
3279};
3280#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3281    pub static mut UserEvents: _UserEventsList;
3282}
3283#[repr(C)]
3284#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3285pub struct _BlockEventsList {
3286    pub PermissionsChanged: Event_Void,
3287    pub BlockDefChanged: Event_Void,
3288}
3289#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3290const _: () = {
3291    ["Size of _BlockEventsList"][::std::mem::size_of::<_BlockEventsList>() - 1040usize];
3292    ["Alignment of _BlockEventsList"][::std::mem::align_of::<_BlockEventsList>() - 8usize];
3293    ["Offset of field: _BlockEventsList::PermissionsChanged"]
3294        [::std::mem::offset_of!(_BlockEventsList, PermissionsChanged) - 0usize];
3295    ["Offset of field: _BlockEventsList::BlockDefChanged"]
3296        [::std::mem::offset_of!(_BlockEventsList, BlockDefChanged) - 520usize];
3297};
3298#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3299    pub static mut BlockEvents: _BlockEventsList;
3300}
3301#[repr(C)]
3302#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3303pub struct _WorldEventsList {
3304    pub NewMap: Event_Void,
3305    pub Loading: Event_Float,
3306    pub MapLoaded: Event_Void,
3307    pub EnvVarChanged: Event_Int,
3308    pub LightingModeChanged: Event_LightingMode,
3309}
3310#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3311const _: () = {
3312    ["Size of _WorldEventsList"][::std::mem::size_of::<_WorldEventsList>() - 2600usize];
3313    ["Alignment of _WorldEventsList"][::std::mem::align_of::<_WorldEventsList>() - 8usize];
3314    ["Offset of field: _WorldEventsList::NewMap"]
3315        [::std::mem::offset_of!(_WorldEventsList, NewMap) - 0usize];
3316    ["Offset of field: _WorldEventsList::Loading"]
3317        [::std::mem::offset_of!(_WorldEventsList, Loading) - 520usize];
3318    ["Offset of field: _WorldEventsList::MapLoaded"]
3319        [::std::mem::offset_of!(_WorldEventsList, MapLoaded) - 1040usize];
3320    ["Offset of field: _WorldEventsList::EnvVarChanged"]
3321        [::std::mem::offset_of!(_WorldEventsList, EnvVarChanged) - 1560usize];
3322    ["Offset of field: _WorldEventsList::LightingModeChanged"]
3323        [::std::mem::offset_of!(_WorldEventsList, LightingModeChanged) - 2080usize];
3324};
3325#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3326    pub static mut WorldEvents: _WorldEventsList;
3327}
3328#[repr(C)]
3329#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3330pub struct _ChatEventsList {
3331    pub FontChanged: Event_Void,
3332    pub ChatReceived: Event_Chat,
3333    pub ChatSending: Event_Chat,
3334    pub ColCodeChanged: Event_Int,
3335}
3336#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3337const _: () = {
3338    ["Size of _ChatEventsList"][::std::mem::size_of::<_ChatEventsList>() - 2080usize];
3339    ["Alignment of _ChatEventsList"][::std::mem::align_of::<_ChatEventsList>() - 8usize];
3340    ["Offset of field: _ChatEventsList::FontChanged"]
3341        [::std::mem::offset_of!(_ChatEventsList, FontChanged) - 0usize];
3342    ["Offset of field: _ChatEventsList::ChatReceived"]
3343        [::std::mem::offset_of!(_ChatEventsList, ChatReceived) - 520usize];
3344    ["Offset of field: _ChatEventsList::ChatSending"]
3345        [::std::mem::offset_of!(_ChatEventsList, ChatSending) - 1040usize];
3346    ["Offset of field: _ChatEventsList::ColCodeChanged"]
3347        [::std::mem::offset_of!(_ChatEventsList, ColCodeChanged) - 1560usize];
3348};
3349#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3350    pub static mut ChatEvents: _ChatEventsList;
3351}
3352#[repr(C)]
3353#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3354pub struct _WindowEventsList {
3355    pub RedrawNeeded: Event_Void,
3356    pub Resized: Event_Void,
3357    pub Closing: Event_Void,
3358    pub FocusChanged: Event_Void,
3359    pub StateChanged: Event_Void,
3360    pub Created: Event_Void,
3361    pub InactiveChanged: Event_Void,
3362    pub Redrawing: Event_Void,
3363}
3364#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3365const _: () = {
3366    ["Size of _WindowEventsList"][::std::mem::size_of::<_WindowEventsList>() - 4160usize];
3367    ["Alignment of _WindowEventsList"][::std::mem::align_of::<_WindowEventsList>() - 8usize];
3368    ["Offset of field: _WindowEventsList::RedrawNeeded"]
3369        [::std::mem::offset_of!(_WindowEventsList, RedrawNeeded) - 0usize];
3370    ["Offset of field: _WindowEventsList::Resized"]
3371        [::std::mem::offset_of!(_WindowEventsList, Resized) - 520usize];
3372    ["Offset of field: _WindowEventsList::Closing"]
3373        [::std::mem::offset_of!(_WindowEventsList, Closing) - 1040usize];
3374    ["Offset of field: _WindowEventsList::FocusChanged"]
3375        [::std::mem::offset_of!(_WindowEventsList, FocusChanged) - 1560usize];
3376    ["Offset of field: _WindowEventsList::StateChanged"]
3377        [::std::mem::offset_of!(_WindowEventsList, StateChanged) - 2080usize];
3378    ["Offset of field: _WindowEventsList::Created"]
3379        [::std::mem::offset_of!(_WindowEventsList, Created) - 2600usize];
3380    ["Offset of field: _WindowEventsList::InactiveChanged"]
3381        [::std::mem::offset_of!(_WindowEventsList, InactiveChanged) - 3120usize];
3382    ["Offset of field: _WindowEventsList::Redrawing"]
3383        [::std::mem::offset_of!(_WindowEventsList, Redrawing) - 3640usize];
3384};
3385#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3386    pub static mut WindowEvents: _WindowEventsList;
3387}
3388#[repr(C)]
3389#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3390pub struct _InputEventsList {
3391    pub Press: Event_Int,
3392    pub _down: Event_Input,
3393    pub _up: Event_Input,
3394    pub Wheel: Event_Float,
3395    pub TextChanged: Event_String,
3396    pub Down2: Event_Input,
3397    pub Up2: Event_Input,
3398}
3399#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3400const _: () = {
3401    ["Size of _InputEventsList"][::std::mem::size_of::<_InputEventsList>() - 3640usize];
3402    ["Alignment of _InputEventsList"][::std::mem::align_of::<_InputEventsList>() - 8usize];
3403    ["Offset of field: _InputEventsList::Press"]
3404        [::std::mem::offset_of!(_InputEventsList, Press) - 0usize];
3405    ["Offset of field: _InputEventsList::_down"]
3406        [::std::mem::offset_of!(_InputEventsList, _down) - 520usize];
3407    ["Offset of field: _InputEventsList::_up"]
3408        [::std::mem::offset_of!(_InputEventsList, _up) - 1040usize];
3409    ["Offset of field: _InputEventsList::Wheel"]
3410        [::std::mem::offset_of!(_InputEventsList, Wheel) - 1560usize];
3411    ["Offset of field: _InputEventsList::TextChanged"]
3412        [::std::mem::offset_of!(_InputEventsList, TextChanged) - 2080usize];
3413    ["Offset of field: _InputEventsList::Down2"]
3414        [::std::mem::offset_of!(_InputEventsList, Down2) - 2600usize];
3415    ["Offset of field: _InputEventsList::Up2"]
3416        [::std::mem::offset_of!(_InputEventsList, Up2) - 3120usize];
3417};
3418#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3419    pub static mut InputEvents: _InputEventsList;
3420}
3421#[repr(C)]
3422#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3423pub struct _PointerEventsList {
3424    pub Moved: Event_Int,
3425    pub Down: Event_Int,
3426    pub Up: Event_Int,
3427    pub RawMoved: Event_RawMove,
3428}
3429#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3430const _: () = {
3431    ["Size of _PointerEventsList"][::std::mem::size_of::<_PointerEventsList>() - 2080usize];
3432    ["Alignment of _PointerEventsList"][::std::mem::align_of::<_PointerEventsList>() - 8usize];
3433    ["Offset of field: _PointerEventsList::Moved"]
3434        [::std::mem::offset_of!(_PointerEventsList, Moved) - 0usize];
3435    ["Offset of field: _PointerEventsList::Down"]
3436        [::std::mem::offset_of!(_PointerEventsList, Down) - 520usize];
3437    ["Offset of field: _PointerEventsList::Up"]
3438        [::std::mem::offset_of!(_PointerEventsList, Up) - 1040usize];
3439    ["Offset of field: _PointerEventsList::RawMoved"]
3440        [::std::mem::offset_of!(_PointerEventsList, RawMoved) - 1560usize];
3441};
3442#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3443    pub static mut PointerEvents: _PointerEventsList;
3444}
3445#[repr(C)]
3446#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3447pub struct _ControllerEventsList {
3448    pub AxisUpdate: Event_PadAxis,
3449}
3450#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3451const _: () = {
3452    ["Size of _ControllerEventsList"][::std::mem::size_of::<_ControllerEventsList>() - 520usize];
3453    ["Alignment of _ControllerEventsList"]
3454        [::std::mem::align_of::<_ControllerEventsList>() - 8usize];
3455    ["Offset of field: _ControllerEventsList::AxisUpdate"]
3456        [::std::mem::offset_of!(_ControllerEventsList, AxisUpdate) - 0usize];
3457};
3458#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3459    pub static mut ControllerEvents: _ControllerEventsList;
3460}
3461#[repr(C)]
3462#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3463pub struct _NetEventsList {
3464    pub Connected: Event_Void,
3465    pub Disconnected: Event_Void,
3466    pub PluginMessageReceived: Event_PluginMessage,
3467}
3468#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3469const _: () = {
3470    ["Size of _NetEventsList"][::std::mem::size_of::<_NetEventsList>() - 1560usize];
3471    ["Alignment of _NetEventsList"][::std::mem::align_of::<_NetEventsList>() - 8usize];
3472    ["Offset of field: _NetEventsList::Connected"]
3473        [::std::mem::offset_of!(_NetEventsList, Connected) - 0usize];
3474    ["Offset of field: _NetEventsList::Disconnected"]
3475        [::std::mem::offset_of!(_NetEventsList, Disconnected) - 520usize];
3476    ["Offset of field: _NetEventsList::PluginMessageReceived"]
3477        [::std::mem::offset_of!(_NetEventsList, PluginMessageReceived) - 1040usize];
3478};
3479#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3480    pub static mut NetEvents: _NetEventsList;
3481}
3482unsafe extern "C" {
3483    pub fn Math_Sin(x: f64) -> f64;
3484}
3485unsafe extern "C" {
3486    pub fn Math_Cos(x: f64) -> f64;
3487}
3488unsafe extern "C" {
3489    pub fn Math_SinF(x: f32) -> f32;
3490}
3491unsafe extern "C" {
3492    pub fn Math_CosF(x: f32) -> f32;
3493}
3494pub type RNGState = cc_uint64;
3495unsafe extern "C" {
3496    pub fn Random_Seed(rnd: *mut RNGState, seed: ::std::os::raw::c_int);
3497}
3498pub type FP_Random_Seed =
3499    ::std::option::Option<unsafe extern "C" fn(rnd: *mut RNGState, seed: ::std::os::raw::c_int)>;
3500unsafe extern "C" {
3501    pub fn Random_Next(rnd: *mut RNGState, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3502}
3503pub type FP_Random_Next = ::std::option::Option<
3504    unsafe extern "C" fn(rnd: *mut RNGState, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
3505>;
3506unsafe extern "C" {
3507    pub fn Random_Float(rnd: *mut RNGState) -> f32;
3508}
3509pub type MapImportFunc =
3510    ::std::option::Option<unsafe extern "C" fn(stream: *mut Stream) -> cc_result>;
3511#[repr(C)]
3512#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3513pub struct MapImporter {
3514    pub fileExt: *const ::std::os::raw::c_char,
3515    pub import: MapImportFunc,
3516    pub next: *mut MapImporter,
3517}
3518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3519const _: () = {
3520    ["Size of MapImporter"][::std::mem::size_of::<MapImporter>() - 24usize];
3521    ["Alignment of MapImporter"][::std::mem::align_of::<MapImporter>() - 8usize];
3522    ["Offset of field: MapImporter::fileExt"]
3523        [::std::mem::offset_of!(MapImporter, fileExt) - 0usize];
3524    ["Offset of field: MapImporter::import"][::std::mem::offset_of!(MapImporter, import) - 8usize];
3525    ["Offset of field: MapImporter::next"][::std::mem::offset_of!(MapImporter, next) - 16usize];
3526};
3527unsafe extern "C" {
3528    pub fn MapImporter_Register(imp: *mut MapImporter);
3529}
3530unsafe extern "C" {
3531    pub fn MapImporter_Find(path: *const cc_string) -> *mut MapImporter;
3532}
3533unsafe extern "C" {
3534    pub fn Map_LoadFrom(path: *const cc_string) -> cc_result;
3535}
3536#[repr(C)]
3537#[derive(Copy, Clone)]
3538pub union IntAndFloat {
3539    pub f: f32,
3540    pub i: cc_int32,
3541    pub u: cc_uint32,
3542}
3543#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3544const _: () = {
3545    ["Size of IntAndFloat"][::std::mem::size_of::<IntAndFloat>() - 4usize];
3546    ["Alignment of IntAndFloat"][::std::mem::align_of::<IntAndFloat>() - 4usize];
3547    ["Offset of field: IntAndFloat::f"][::std::mem::offset_of!(IntAndFloat, f) - 0usize];
3548    ["Offset of field: IntAndFloat::i"][::std::mem::offset_of!(IntAndFloat, i) - 0usize];
3549    ["Offset of field: IntAndFloat::u"][::std::mem::offset_of!(IntAndFloat, u) - 0usize];
3550};
3551pub type Game_Draw2DHook = ::std::option::Option<unsafe extern "C" fn(delta: f32)>;
3552#[repr(C)]
3553#[derive(Debug, Copy, Clone, PartialEq)]
3554pub struct _GameData {
3555    pub Width: ::std::os::raw::c_int,
3556    pub Height: ::std::os::raw::c_int,
3557    pub Time: f64,
3558    pub ChunkUpdates: ::std::os::raw::c_int,
3559    pub CurrentState: ::std::os::raw::c_int,
3560    pub Draw2DHooks: [Game_Draw2DHook; 4usize],
3561}
3562#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3563const _: () = {
3564    ["Size of _GameData"][::std::mem::size_of::<_GameData>() - 56usize];
3565    ["Alignment of _GameData"][::std::mem::align_of::<_GameData>() - 8usize];
3566    ["Offset of field: _GameData::Width"][::std::mem::offset_of!(_GameData, Width) - 0usize];
3567    ["Offset of field: _GameData::Height"][::std::mem::offset_of!(_GameData, Height) - 4usize];
3568    ["Offset of field: _GameData::Time"][::std::mem::offset_of!(_GameData, Time) - 8usize];
3569    ["Offset of field: _GameData::ChunkUpdates"]
3570        [::std::mem::offset_of!(_GameData, ChunkUpdates) - 16usize];
3571    ["Offset of field: _GameData::CurrentState"]
3572        [::std::mem::offset_of!(_GameData, CurrentState) - 20usize];
3573    ["Offset of field: _GameData::Draw2DHooks"]
3574        [::std::mem::offset_of!(_GameData, Draw2DHooks) - 24usize];
3575};
3576#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3577    pub static mut Game: _GameData;
3578}
3579#[repr(C)]
3580#[derive(Debug, Copy, Clone, PartialEq)]
3581pub struct RayTracer {
3582    pub pos: IVec3,
3583    pub origin: Vec3,
3584    pub dir: Vec3,
3585    pub Min: Vec3,
3586    pub Max: Vec3,
3587    pub block: BlockID,
3588    pub step: IVec3,
3589    pub tMax: Vec3,
3590    pub tDelta: Vec3,
3591    pub intersect: Vec3,
3592    pub translatedPos: IVec3,
3593    pub valid: cc_bool,
3594    pub closest: Face,
3595    pub invDir: Vec3,
3596}
3597#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3598const _: () = {
3599    ["Size of RayTracer"][::std::mem::size_of::<RayTracer>() - 140usize];
3600    ["Alignment of RayTracer"][::std::mem::align_of::<RayTracer>() - 4usize];
3601    ["Offset of field: RayTracer::pos"][::std::mem::offset_of!(RayTracer, pos) - 0usize];
3602    ["Offset of field: RayTracer::origin"][::std::mem::offset_of!(RayTracer, origin) - 12usize];
3603    ["Offset of field: RayTracer::dir"][::std::mem::offset_of!(RayTracer, dir) - 24usize];
3604    ["Offset of field: RayTracer::Min"][::std::mem::offset_of!(RayTracer, Min) - 36usize];
3605    ["Offset of field: RayTracer::Max"][::std::mem::offset_of!(RayTracer, Max) - 48usize];
3606    ["Offset of field: RayTracer::block"][::std::mem::offset_of!(RayTracer, block) - 60usize];
3607    ["Offset of field: RayTracer::step"][::std::mem::offset_of!(RayTracer, step) - 64usize];
3608    ["Offset of field: RayTracer::tMax"][::std::mem::offset_of!(RayTracer, tMax) - 76usize];
3609    ["Offset of field: RayTracer::tDelta"][::std::mem::offset_of!(RayTracer, tDelta) - 88usize];
3610    ["Offset of field: RayTracer::intersect"]
3611        [::std::mem::offset_of!(RayTracer, intersect) - 100usize];
3612    ["Offset of field: RayTracer::translatedPos"]
3613        [::std::mem::offset_of!(RayTracer, translatedPos) - 112usize];
3614    ["Offset of field: RayTracer::valid"][::std::mem::offset_of!(RayTracer, valid) - 124usize];
3615    ["Offset of field: RayTracer::closest"][::std::mem::offset_of!(RayTracer, closest) - 125usize];
3616    ["Offset of field: RayTracer::invDir"][::std::mem::offset_of!(RayTracer, invDir) - 128usize];
3617};
3618pub const GAME_VERSION__VERSION_0017: GAME_VERSION_ = 27;
3619pub const GAME_VERSION__VERSION_0019: GAME_VERSION_ = 28;
3620pub const GAME_VERSION__VERSION_0023: GAME_VERSION_ = 29;
3621pub const GAME_VERSION__VERSION_0030: GAME_VERSION_ = 30;
3622pub const GAME_VERSION__VERSION_CPE: GAME_VERSION_ = 31;
3623pub type GAME_VERSION_ = ::std::os::raw::c_int;
3624#[repr(C)]
3625#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3626pub struct GameVersion {
3627    pub Name: *const ::std::os::raw::c_char,
3628    pub HasCPE: cc_bool,
3629    pub Version: cc_uint8,
3630    pub Protocol: cc_uint8,
3631    pub MaxCoreBlock: cc_uint8,
3632    pub BlocksPerRow: cc_uint8,
3633    pub InventorySize: cc_uint8,
3634    pub Inventory: *const cc_uint8,
3635    pub Hotbar: *const cc_uint8,
3636    pub DefaultTexpack: *const ::std::os::raw::c_char,
3637}
3638#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3639const _: () = {
3640    ["Size of GameVersion"][::std::mem::size_of::<GameVersion>() - 40usize];
3641    ["Alignment of GameVersion"][::std::mem::align_of::<GameVersion>() - 8usize];
3642    ["Offset of field: GameVersion::Name"][::std::mem::offset_of!(GameVersion, Name) - 0usize];
3643    ["Offset of field: GameVersion::HasCPE"][::std::mem::offset_of!(GameVersion, HasCPE) - 8usize];
3644    ["Offset of field: GameVersion::Version"]
3645        [::std::mem::offset_of!(GameVersion, Version) - 9usize];
3646    ["Offset of field: GameVersion::Protocol"]
3647        [::std::mem::offset_of!(GameVersion, Protocol) - 10usize];
3648    ["Offset of field: GameVersion::MaxCoreBlock"]
3649        [::std::mem::offset_of!(GameVersion, MaxCoreBlock) - 11usize];
3650    ["Offset of field: GameVersion::BlocksPerRow"]
3651        [::std::mem::offset_of!(GameVersion, BlocksPerRow) - 12usize];
3652    ["Offset of field: GameVersion::InventorySize"]
3653        [::std::mem::offset_of!(GameVersion, InventorySize) - 13usize];
3654    ["Offset of field: GameVersion::Inventory"]
3655        [::std::mem::offset_of!(GameVersion, Inventory) - 16usize];
3656    ["Offset of field: GameVersion::Hotbar"][::std::mem::offset_of!(GameVersion, Hotbar) - 24usize];
3657    ["Offset of field: GameVersion::DefaultTexpack"]
3658        [::std::mem::offset_of!(GameVersion, DefaultTexpack) - 32usize];
3659};
3660pub const FpsLimitMethod_FPS_LIMIT_VSYNC: FpsLimitMethod = 0;
3661pub const FpsLimitMethod_FPS_LIMIT_30: FpsLimitMethod = 1;
3662pub const FpsLimitMethod_FPS_LIMIT_60: FpsLimitMethod = 2;
3663pub const FpsLimitMethod_FPS_LIMIT_120: FpsLimitMethod = 3;
3664pub const FpsLimitMethod_FPS_LIMIT_144: FpsLimitMethod = 4;
3665pub const FpsLimitMethod_FPS_LIMIT_NONE: FpsLimitMethod = 5;
3666pub const FpsLimitMethod_FPS_LIMIT_COUNT: FpsLimitMethod = 6;
3667pub type FpsLimitMethod = ::std::os::raw::c_int;
3668unsafe extern "C" {
3669    pub fn Game_UpdateBlock(
3670        x: ::std::os::raw::c_int,
3671        y: ::std::os::raw::c_int,
3672        z: ::std::os::raw::c_int,
3673        block: BlockID,
3674    );
3675}
3676unsafe extern "C" {
3677    pub fn Game_ChangeBlock(
3678        x: ::std::os::raw::c_int,
3679        y: ::std::os::raw::c_int,
3680        z: ::std::os::raw::c_int,
3681        block: BlockID,
3682    );
3683}
3684#[repr(C)]
3685#[derive(Debug, Copy, Clone, PartialEq)]
3686pub struct ScheduledTask {
3687    pub accumulator: f64,
3688    pub interval: f64,
3689    pub Callback: ::std::option::Option<unsafe extern "C" fn(task: *mut ScheduledTask)>,
3690}
3691#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3692const _: () = {
3693    ["Size of ScheduledTask"][::std::mem::size_of::<ScheduledTask>() - 24usize];
3694    ["Alignment of ScheduledTask"][::std::mem::align_of::<ScheduledTask>() - 8usize];
3695    ["Offset of field: ScheduledTask::accumulator"]
3696        [::std::mem::offset_of!(ScheduledTask, accumulator) - 0usize];
3697    ["Offset of field: ScheduledTask::interval"]
3698        [::std::mem::offset_of!(ScheduledTask, interval) - 8usize];
3699    ["Offset of field: ScheduledTask::Callback"]
3700        [::std::mem::offset_of!(ScheduledTask, Callback) - 16usize];
3701};
3702pub type ScheduledTaskCallback =
3703    ::std::option::Option<unsafe extern "C" fn(task: *mut ScheduledTask)>;
3704unsafe extern "C" {
3705    pub fn ScheduledTask_Add(
3706        interval: f64,
3707        callback: ScheduledTaskCallback,
3708    ) -> ::std::os::raw::c_int;
3709}
3710#[repr(C)]
3711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3712pub struct MapGenerator {
3713    pub Prepare: ::std::option::Option<unsafe extern "C" fn() -> cc_bool>,
3714    pub Generate: ::std::option::Option<unsafe extern "C" fn()>,
3715}
3716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3717const _: () = {
3718    ["Size of MapGenerator"][::std::mem::size_of::<MapGenerator>() - 16usize];
3719    ["Alignment of MapGenerator"][::std::mem::align_of::<MapGenerator>() - 8usize];
3720    ["Offset of field: MapGenerator::Prepare"]
3721        [::std::mem::offset_of!(MapGenerator, Prepare) - 0usize];
3722    ["Offset of field: MapGenerator::Generate"]
3723        [::std::mem::offset_of!(MapGenerator, Generate) - 8usize];
3724};
3725#[repr(C)]
3726#[derive(Debug, Copy, Clone)]
3727pub struct MenuOptionsScreen {
3728    _unused: [u8; 0],
3729}
3730pub const VertexFormat__VERTEX_FORMAT_COLOURED: VertexFormat_ = 0;
3731pub const VertexFormat__VERTEX_FORMAT_TEXTURED: VertexFormat_ = 1;
3732pub type VertexFormat_ = ::std::os::raw::c_int;
3733pub use self::VertexFormat_ as VertexFormat;
3734#[repr(C)]
3735#[derive(Debug, Copy, Clone, PartialEq)]
3736pub struct VertexColoured {
3737    pub x: f32,
3738    pub y: f32,
3739    pub z: f32,
3740    pub Col: PackedCol,
3741}
3742#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3743const _: () = {
3744    ["Size of VertexColoured"][::std::mem::size_of::<VertexColoured>() - 16usize];
3745    ["Alignment of VertexColoured"][::std::mem::align_of::<VertexColoured>() - 4usize];
3746    ["Offset of field: VertexColoured::x"][::std::mem::offset_of!(VertexColoured, x) - 0usize];
3747    ["Offset of field: VertexColoured::y"][::std::mem::offset_of!(VertexColoured, y) - 4usize];
3748    ["Offset of field: VertexColoured::z"][::std::mem::offset_of!(VertexColoured, z) - 8usize];
3749    ["Offset of field: VertexColoured::Col"][::std::mem::offset_of!(VertexColoured, Col) - 12usize];
3750};
3751#[repr(C)]
3752#[derive(Debug, Copy, Clone, PartialEq)]
3753pub struct VertexTextured {
3754    pub x: f32,
3755    pub y: f32,
3756    pub z: f32,
3757    pub Col: PackedCol,
3758    pub U: f32,
3759    pub V: f32,
3760}
3761#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3762const _: () = {
3763    ["Size of VertexTextured"][::std::mem::size_of::<VertexTextured>() - 24usize];
3764    ["Alignment of VertexTextured"][::std::mem::align_of::<VertexTextured>() - 4usize];
3765    ["Offset of field: VertexTextured::x"][::std::mem::offset_of!(VertexTextured, x) - 0usize];
3766    ["Offset of field: VertexTextured::y"][::std::mem::offset_of!(VertexTextured, y) - 4usize];
3767    ["Offset of field: VertexTextured::z"][::std::mem::offset_of!(VertexTextured, z) - 8usize];
3768    ["Offset of field: VertexTextured::Col"][::std::mem::offset_of!(VertexTextured, Col) - 12usize];
3769    ["Offset of field: VertexTextured::U"][::std::mem::offset_of!(VertexTextured, U) - 16usize];
3770    ["Offset of field: VertexTextured::V"][::std::mem::offset_of!(VertexTextured, V) - 20usize];
3771};
3772#[repr(C)]
3773#[derive(Debug, Copy, Clone, PartialEq)]
3774pub struct _GfxData {
3775    pub MaxTexWidth: ::std::os::raw::c_int,
3776    pub MaxTexHeight: ::std::os::raw::c_int,
3777    pub MaxTexSize: ::std::os::raw::c_int,
3778    pub LostContext: cc_bool,
3779    pub Mipmaps: cc_bool,
3780    pub ManagedTextures: cc_bool,
3781    pub Created: cc_bool,
3782    pub View: Matrix,
3783    pub Projection: Matrix,
3784    pub SupportsNonPowTwoTextures: cc_bool,
3785    pub NoUVSupport: cc_bool,
3786    pub BackendType: cc_uint8,
3787    pub __pad: cc_bool,
3788    pub MaxLowResTexSize: ::std::os::raw::c_int,
3789    pub MinTexWidth: ::std::os::raw::c_int,
3790    pub MinTexHeight: ::std::os::raw::c_int,
3791    pub ReducedPerfMode: cc_bool,
3792    pub ReducedPerfModeCooldown: cc_uint8,
3793    pub DefaultIb: GfxResourceID,
3794}
3795#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3796const _: () = {
3797    ["Size of _GfxData"][::std::mem::size_of::<_GfxData>() - 176usize];
3798    ["Alignment of _GfxData"][::std::mem::align_of::<_GfxData>() - 8usize];
3799    ["Offset of field: _GfxData::MaxTexWidth"]
3800        [::std::mem::offset_of!(_GfxData, MaxTexWidth) - 0usize];
3801    ["Offset of field: _GfxData::MaxTexHeight"]
3802        [::std::mem::offset_of!(_GfxData, MaxTexHeight) - 4usize];
3803    ["Offset of field: _GfxData::MaxTexSize"]
3804        [::std::mem::offset_of!(_GfxData, MaxTexSize) - 8usize];
3805    ["Offset of field: _GfxData::LostContext"]
3806        [::std::mem::offset_of!(_GfxData, LostContext) - 12usize];
3807    ["Offset of field: _GfxData::Mipmaps"][::std::mem::offset_of!(_GfxData, Mipmaps) - 13usize];
3808    ["Offset of field: _GfxData::ManagedTextures"]
3809        [::std::mem::offset_of!(_GfxData, ManagedTextures) - 14usize];
3810    ["Offset of field: _GfxData::Created"][::std::mem::offset_of!(_GfxData, Created) - 15usize];
3811    ["Offset of field: _GfxData::View"][::std::mem::offset_of!(_GfxData, View) - 16usize];
3812    ["Offset of field: _GfxData::Projection"]
3813        [::std::mem::offset_of!(_GfxData, Projection) - 80usize];
3814    ["Offset of field: _GfxData::SupportsNonPowTwoTextures"]
3815        [::std::mem::offset_of!(_GfxData, SupportsNonPowTwoTextures) - 144usize];
3816    ["Offset of field: _GfxData::NoUVSupport"]
3817        [::std::mem::offset_of!(_GfxData, NoUVSupport) - 145usize];
3818    ["Offset of field: _GfxData::BackendType"]
3819        [::std::mem::offset_of!(_GfxData, BackendType) - 146usize];
3820    ["Offset of field: _GfxData::__pad"][::std::mem::offset_of!(_GfxData, __pad) - 147usize];
3821    ["Offset of field: _GfxData::MaxLowResTexSize"]
3822        [::std::mem::offset_of!(_GfxData, MaxLowResTexSize) - 148usize];
3823    ["Offset of field: _GfxData::MinTexWidth"]
3824        [::std::mem::offset_of!(_GfxData, MinTexWidth) - 152usize];
3825    ["Offset of field: _GfxData::MinTexHeight"]
3826        [::std::mem::offset_of!(_GfxData, MinTexHeight) - 156usize];
3827    ["Offset of field: _GfxData::ReducedPerfMode"]
3828        [::std::mem::offset_of!(_GfxData, ReducedPerfMode) - 160usize];
3829    ["Offset of field: _GfxData::ReducedPerfModeCooldown"]
3830        [::std::mem::offset_of!(_GfxData, ReducedPerfModeCooldown) - 161usize];
3831    ["Offset of field: _GfxData::DefaultIb"]
3832        [::std::mem::offset_of!(_GfxData, DefaultIb) - 168usize];
3833};
3834#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
3835    pub static mut Gfx: _GfxData;
3836}
3837unsafe extern "C" {
3838    pub fn Gfx_CreateTexture(bmp: *mut Bitmap, flags: cc_uint8, mipmaps: cc_bool) -> GfxResourceID;
3839}
3840unsafe extern "C" {
3841    pub fn Gfx_UpdateTexturePart(
3842        texId: GfxResourceID,
3843        x: ::std::os::raw::c_int,
3844        y: ::std::os::raw::c_int,
3845        part: *mut Bitmap,
3846        mipmaps: cc_bool,
3847    );
3848}
3849unsafe extern "C" {
3850    pub fn Gfx_BindTexture(texId: GfxResourceID);
3851}
3852unsafe extern "C" {
3853    pub fn Gfx_DeleteTexture(texId: *mut GfxResourceID);
3854}
3855unsafe extern "C" {
3856    pub fn Gfx_SetTexturing(enabled: cc_bool);
3857}
3858unsafe extern "C" {
3859    pub fn Gfx_EnableMipmaps();
3860}
3861unsafe extern "C" {
3862    pub fn Gfx_DisableMipmaps();
3863}
3864pub const GfxBuffers__GFX_BUFFER_COLOR: GfxBuffers_ = 1;
3865pub const GfxBuffers__GFX_BUFFER_DEPTH: GfxBuffers_ = 2;
3866pub type GfxBuffers_ = ::std::os::raw::c_int;
3867pub use self::GfxBuffers_ as GfxBuffers;
3868unsafe extern "C" {
3869    pub fn Gfx_ClearBuffers(buffers: GfxBuffers);
3870}
3871unsafe extern "C" {
3872    pub fn Gfx_ClearColor(color: PackedCol);
3873}
3874pub const Screen3DS_TOP_SCREEN: Screen3DS = 0;
3875pub const Screen3DS_BOTTOM_SCREEN: Screen3DS = 1;
3876pub type Screen3DS = ::std::os::raw::c_int;
3877pub const FogFunc__FOG_LINEAR: FogFunc_ = 0;
3878pub const FogFunc__FOG_EXP: FogFunc_ = 1;
3879pub const FogFunc__FOG_EXP2: FogFunc_ = 2;
3880pub type FogFunc_ = ::std::os::raw::c_int;
3881pub use self::FogFunc_ as FogFunc;
3882unsafe extern "C" {
3883    pub fn Gfx_GetFog() -> cc_bool;
3884}
3885unsafe extern "C" {
3886    pub fn Gfx_SetFog(enabled: cc_bool);
3887}
3888unsafe extern "C" {
3889    pub fn Gfx_SetFogCol(col: PackedCol);
3890}
3891unsafe extern "C" {
3892    pub fn Gfx_SetFogDensity(value: f32);
3893}
3894unsafe extern "C" {
3895    pub fn Gfx_SetFogEnd(value: f32);
3896}
3897unsafe extern "C" {
3898    pub fn Gfx_SetFogMode(func: FogFunc);
3899}
3900unsafe extern "C" {
3901    pub fn Gfx_SetFaceCulling(enabled: cc_bool);
3902}
3903unsafe extern "C" {
3904    pub fn Gfx_SetAlphaTest(enabled: cc_bool);
3905}
3906unsafe extern "C" {
3907    pub fn Gfx_SetAlphaBlending(enabled: cc_bool);
3908}
3909unsafe extern "C" {
3910    pub fn Gfx_SetAlphaArgBlend(enabled: cc_bool);
3911}
3912unsafe extern "C" {
3913    pub fn Gfx_SetDepthTest(enabled: cc_bool);
3914}
3915unsafe extern "C" {
3916    pub fn Gfx_SetDepthWrite(enabled: cc_bool);
3917}
3918unsafe extern "C" {
3919    pub fn Gfx_SetColorWrite(r: cc_bool, g: cc_bool, b: cc_bool, a: cc_bool);
3920}
3921unsafe extern "C" {
3922    pub fn Gfx_DepthOnlyRendering(depthOnly: cc_bool);
3923}
3924pub type Gfx_FillIBFunc = ::std::option::Option<
3925    unsafe extern "C" fn(
3926        indices: *mut cc_uint16,
3927        count: ::std::os::raw::c_int,
3928        obj: *mut ::std::os::raw::c_void,
3929    ),
3930>;
3931unsafe extern "C" {
3932    pub fn Gfx_CreateIb2(
3933        count: ::std::os::raw::c_int,
3934        fillFunc: Gfx_FillIBFunc,
3935        obj: *mut ::std::os::raw::c_void,
3936    ) -> GfxResourceID;
3937}
3938unsafe extern "C" {
3939    pub fn Gfx_BindIb(ib: GfxResourceID);
3940}
3941unsafe extern "C" {
3942    pub fn Gfx_DeleteIb(ib: *mut GfxResourceID);
3943}
3944unsafe extern "C" {
3945    pub fn Gfx_CreateVb(fmt: VertexFormat, count: ::std::os::raw::c_int) -> GfxResourceID;
3946}
3947unsafe extern "C" {
3948    pub fn Gfx_BindVb(vb: GfxResourceID);
3949}
3950unsafe extern "C" {
3951    pub fn Gfx_DeleteVb(vb: *mut GfxResourceID);
3952}
3953unsafe extern "C" {
3954    pub fn Gfx_LockVb(
3955        vb: GfxResourceID,
3956        fmt: VertexFormat,
3957        count: ::std::os::raw::c_int,
3958    ) -> *mut ::std::os::raw::c_void;
3959}
3960unsafe extern "C" {
3961    pub fn Gfx_UnlockVb(vb: GfxResourceID);
3962}
3963unsafe extern "C" {
3964    pub fn Gfx_CreateDynamicVb(
3965        fmt: VertexFormat,
3966        maxVertices: ::std::os::raw::c_int,
3967    ) -> GfxResourceID;
3968}
3969unsafe extern "C" {
3970    pub fn Gfx_BindDynamicVb(vb: GfxResourceID);
3971}
3972unsafe extern "C" {
3973    pub fn Gfx_DeleteDynamicVb(vb: *mut GfxResourceID);
3974}
3975unsafe extern "C" {
3976    pub fn Gfx_LockDynamicVb(
3977        vb: GfxResourceID,
3978        fmt: VertexFormat,
3979        count: ::std::os::raw::c_int,
3980    ) -> *mut ::std::os::raw::c_void;
3981}
3982unsafe extern "C" {
3983    pub fn Gfx_UnlockDynamicVb(vb: GfxResourceID);
3984}
3985unsafe extern "C" {
3986    pub fn Gfx_SetDynamicVbData(
3987        vb: GfxResourceID,
3988        vertices: *mut ::std::os::raw::c_void,
3989        vCount: ::std::os::raw::c_int,
3990    );
3991}
3992unsafe extern "C" {
3993    pub fn Gfx_SetVertexFormat(fmt: VertexFormat);
3994}
3995unsafe extern "C" {
3996    pub fn Gfx_DrawVb_Lines(verticesCount: ::std::os::raw::c_int);
3997}
3998unsafe extern "C" {
3999    pub fn Gfx_DrawVb_IndexedTris_Range(
4000        verticesCount: ::std::os::raw::c_int,
4001        startVertex: ::std::os::raw::c_int,
4002    );
4003}
4004unsafe extern "C" {
4005    pub fn Gfx_DrawVb_IndexedTris(verticesCount: ::std::os::raw::c_int);
4006}
4007pub const MatrixType__MATRIX_PROJ: MatrixType_ = 0;
4008pub const MatrixType__MATRIX_VIEW: MatrixType_ = 1;
4009pub type MatrixType_ = ::std::os::raw::c_int;
4010pub use self::MatrixType_ as MatrixType;
4011unsafe extern "C" {
4012    pub fn Gfx_LoadMatrix(type_: MatrixType, matrix: *const Matrix);
4013}
4014unsafe extern "C" {
4015    pub fn Gfx_EnableTextureOffset(x: f32, y: f32);
4016}
4017unsafe extern "C" {
4018    pub fn Gfx_DisableTextureOffset();
4019}
4020unsafe extern "C" {
4021    pub fn Gfx_SetViewport(
4022        x: ::std::os::raw::c_int,
4023        y: ::std::os::raw::c_int,
4024        w: ::std::os::raw::c_int,
4025        h: ::std::os::raw::c_int,
4026    );
4027}
4028unsafe extern "C" {
4029    pub fn Gfx_SetScissor(
4030        x: ::std::os::raw::c_int,
4031        y: ::std::os::raw::c_int,
4032        w: ::std::os::raw::c_int,
4033        h: ::std::os::raw::c_int,
4034    );
4035}
4036pub const GuiAnchor_ANCHOR_MIN: GuiAnchor = 0;
4037pub const GuiAnchor_ANCHOR_CENTRE: GuiAnchor = 1;
4038pub const GuiAnchor_ANCHOR_MAX: GuiAnchor = 2;
4039pub const GuiAnchor_ANCHOR_CENTRE_MIN: GuiAnchor = 3;
4040pub const GuiAnchor_ANCHOR_CENTRE_MAX: GuiAnchor = 4;
4041pub type GuiAnchor = ::std::os::raw::c_int;
4042#[repr(C)]
4043#[derive(Debug, Copy, Clone, PartialEq)]
4044pub struct _GuiData {
4045    pub Screens: *mut *mut Screen,
4046    pub ScreensCount: ::std::os::raw::c_int,
4047    pub ClassicTexture: cc_bool,
4048    pub ClassicTabList: cc_bool,
4049    pub ClassicMenu: cc_bool,
4050    pub ClassicChat: cc_bool,
4051    pub Chatlines: ::std::os::raw::c_int,
4052    pub ClickableChat: cc_bool,
4053    pub TabAutocomplete: cc_bool,
4054    pub ShowFPS: cc_bool,
4055    pub ClassicInventory: cc_bool,
4056    pub RawHotbarScale: f32,
4057    pub RawChatScale: f32,
4058    pub RawInventoryScale: f32,
4059    pub RawCrosshairScale: f32,
4060    pub GuiTex: GfxResourceID,
4061    pub GuiClassicTex: GfxResourceID,
4062    pub IconsTex: GfxResourceID,
4063    pub TouchTex: GfxResourceID,
4064    pub DefaultLines: ::std::os::raw::c_int,
4065    pub _unused: ::std::os::raw::c_int,
4066    pub RawTouchScale: f32,
4067    pub InputGrab: *mut Screen,
4068    pub AutoScaleChat: cc_bool,
4069    pub TouchUI: cc_bool,
4070    pub HideCrosshair: cc_bool,
4071    pub HideHand: cc_bool,
4072    pub HideHotbar: cc_bool,
4073    pub BarSize: f32,
4074    pub CinematicBarColor: PackedCol,
4075}
4076#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4077const _: () = {
4078    ["Size of _GuiData"][::std::mem::size_of::<_GuiData>() - 112usize];
4079    ["Alignment of _GuiData"][::std::mem::align_of::<_GuiData>() - 8usize];
4080    ["Offset of field: _GuiData::Screens"][::std::mem::offset_of!(_GuiData, Screens) - 0usize];
4081    ["Offset of field: _GuiData::ScreensCount"]
4082        [::std::mem::offset_of!(_GuiData, ScreensCount) - 8usize];
4083    ["Offset of field: _GuiData::ClassicTexture"]
4084        [::std::mem::offset_of!(_GuiData, ClassicTexture) - 12usize];
4085    ["Offset of field: _GuiData::ClassicTabList"]
4086        [::std::mem::offset_of!(_GuiData, ClassicTabList) - 13usize];
4087    ["Offset of field: _GuiData::ClassicMenu"]
4088        [::std::mem::offset_of!(_GuiData, ClassicMenu) - 14usize];
4089    ["Offset of field: _GuiData::ClassicChat"]
4090        [::std::mem::offset_of!(_GuiData, ClassicChat) - 15usize];
4091    ["Offset of field: _GuiData::Chatlines"][::std::mem::offset_of!(_GuiData, Chatlines) - 16usize];
4092    ["Offset of field: _GuiData::ClickableChat"]
4093        [::std::mem::offset_of!(_GuiData, ClickableChat) - 20usize];
4094    ["Offset of field: _GuiData::TabAutocomplete"]
4095        [::std::mem::offset_of!(_GuiData, TabAutocomplete) - 21usize];
4096    ["Offset of field: _GuiData::ShowFPS"][::std::mem::offset_of!(_GuiData, ShowFPS) - 22usize];
4097    ["Offset of field: _GuiData::ClassicInventory"]
4098        [::std::mem::offset_of!(_GuiData, ClassicInventory) - 23usize];
4099    ["Offset of field: _GuiData::RawHotbarScale"]
4100        [::std::mem::offset_of!(_GuiData, RawHotbarScale) - 24usize];
4101    ["Offset of field: _GuiData::RawChatScale"]
4102        [::std::mem::offset_of!(_GuiData, RawChatScale) - 28usize];
4103    ["Offset of field: _GuiData::RawInventoryScale"]
4104        [::std::mem::offset_of!(_GuiData, RawInventoryScale) - 32usize];
4105    ["Offset of field: _GuiData::RawCrosshairScale"]
4106        [::std::mem::offset_of!(_GuiData, RawCrosshairScale) - 36usize];
4107    ["Offset of field: _GuiData::GuiTex"][::std::mem::offset_of!(_GuiData, GuiTex) - 40usize];
4108    ["Offset of field: _GuiData::GuiClassicTex"]
4109        [::std::mem::offset_of!(_GuiData, GuiClassicTex) - 48usize];
4110    ["Offset of field: _GuiData::IconsTex"][::std::mem::offset_of!(_GuiData, IconsTex) - 56usize];
4111    ["Offset of field: _GuiData::TouchTex"][::std::mem::offset_of!(_GuiData, TouchTex) - 64usize];
4112    ["Offset of field: _GuiData::DefaultLines"]
4113        [::std::mem::offset_of!(_GuiData, DefaultLines) - 72usize];
4114    ["Offset of field: _GuiData::_unused"][::std::mem::offset_of!(_GuiData, _unused) - 76usize];
4115    ["Offset of field: _GuiData::RawTouchScale"]
4116        [::std::mem::offset_of!(_GuiData, RawTouchScale) - 80usize];
4117    ["Offset of field: _GuiData::InputGrab"][::std::mem::offset_of!(_GuiData, InputGrab) - 88usize];
4118    ["Offset of field: _GuiData::AutoScaleChat"]
4119        [::std::mem::offset_of!(_GuiData, AutoScaleChat) - 96usize];
4120    ["Offset of field: _GuiData::TouchUI"][::std::mem::offset_of!(_GuiData, TouchUI) - 97usize];
4121    ["Offset of field: _GuiData::HideCrosshair"]
4122        [::std::mem::offset_of!(_GuiData, HideCrosshair) - 98usize];
4123    ["Offset of field: _GuiData::HideHand"][::std::mem::offset_of!(_GuiData, HideHand) - 99usize];
4124    ["Offset of field: _GuiData::HideHotbar"]
4125        [::std::mem::offset_of!(_GuiData, HideHotbar) - 100usize];
4126    ["Offset of field: _GuiData::BarSize"][::std::mem::offset_of!(_GuiData, BarSize) - 104usize];
4127    ["Offset of field: _GuiData::CinematicBarColor"]
4128        [::std::mem::offset_of!(_GuiData, CinematicBarColor) - 108usize];
4129};
4130#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
4131    pub static mut Gui: _GuiData;
4132}
4133#[repr(C)]
4134#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4135pub struct ScreenVTABLE {
4136    pub Init: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4137    pub Update:
4138        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void, delta: f32)>,
4139    pub Free: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4140    pub Render:
4141        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void, delta: f32)>,
4142    pub BuildMesh: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4143    pub HandlesInputDown: ::std::option::Option<
4144        unsafe extern "C" fn(
4145            elem: *mut ::std::os::raw::c_void,
4146            key: ::std::os::raw::c_int,
4147            device: *mut InputDevice,
4148        ) -> ::std::os::raw::c_int,
4149    >,
4150    pub OnInputUp: ::std::option::Option<
4151        unsafe extern "C" fn(
4152            elem: *mut ::std::os::raw::c_void,
4153            key: ::std::os::raw::c_int,
4154            device: *mut InputDevice,
4155        ),
4156    >,
4157    pub HandlesKeyPress: ::std::option::Option<
4158        unsafe extern "C" fn(
4159            elem: *mut ::std::os::raw::c_void,
4160            keyChar: ::std::os::raw::c_char,
4161        ) -> ::std::os::raw::c_int,
4162    >,
4163    pub HandlesTextChanged: ::std::option::Option<
4164        unsafe extern "C" fn(
4165            elem: *mut ::std::os::raw::c_void,
4166            str_: *const cc_string,
4167        ) -> ::std::os::raw::c_int,
4168    >,
4169    pub HandlesPointerDown: ::std::option::Option<
4170        unsafe extern "C" fn(
4171            elem: *mut ::std::os::raw::c_void,
4172            id: ::std::os::raw::c_int,
4173            x: ::std::os::raw::c_int,
4174            y: ::std::os::raw::c_int,
4175        ) -> ::std::os::raw::c_int,
4176    >,
4177    pub OnPointerUp: ::std::option::Option<
4178        unsafe extern "C" fn(
4179            elem: *mut ::std::os::raw::c_void,
4180            id: ::std::os::raw::c_int,
4181            x: ::std::os::raw::c_int,
4182            y: ::std::os::raw::c_int,
4183        ),
4184    >,
4185    pub HandlesPointerMove: ::std::option::Option<
4186        unsafe extern "C" fn(
4187            elem: *mut ::std::os::raw::c_void,
4188            id: ::std::os::raw::c_int,
4189            x: ::std::os::raw::c_int,
4190            y: ::std::os::raw::c_int,
4191        ) -> ::std::os::raw::c_int,
4192    >,
4193    pub HandlesMouseScroll: ::std::option::Option<
4194        unsafe extern "C" fn(
4195            elem: *mut ::std::os::raw::c_void,
4196            delta: f32,
4197        ) -> ::std::os::raw::c_int,
4198    >,
4199    pub Layout: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4200    pub ContextLost: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4201    pub ContextRecreated:
4202        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4203    pub HandlesPadAxis: ::std::option::Option<
4204        unsafe extern "C" fn(
4205            elem: *mut ::std::os::raw::c_void,
4206            axis: ::std::os::raw::c_int,
4207            x: f32,
4208            y: f32,
4209        ) -> ::std::os::raw::c_int,
4210    >,
4211}
4212#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4213const _: () = {
4214    ["Size of ScreenVTABLE"][::std::mem::size_of::<ScreenVTABLE>() - 136usize];
4215    ["Alignment of ScreenVTABLE"][::std::mem::align_of::<ScreenVTABLE>() - 8usize];
4216    ["Offset of field: ScreenVTABLE::Init"][::std::mem::offset_of!(ScreenVTABLE, Init) - 0usize];
4217    ["Offset of field: ScreenVTABLE::Update"]
4218        [::std::mem::offset_of!(ScreenVTABLE, Update) - 8usize];
4219    ["Offset of field: ScreenVTABLE::Free"][::std::mem::offset_of!(ScreenVTABLE, Free) - 16usize];
4220    ["Offset of field: ScreenVTABLE::Render"]
4221        [::std::mem::offset_of!(ScreenVTABLE, Render) - 24usize];
4222    ["Offset of field: ScreenVTABLE::BuildMesh"]
4223        [::std::mem::offset_of!(ScreenVTABLE, BuildMesh) - 32usize];
4224    ["Offset of field: ScreenVTABLE::HandlesInputDown"]
4225        [::std::mem::offset_of!(ScreenVTABLE, HandlesInputDown) - 40usize];
4226    ["Offset of field: ScreenVTABLE::OnInputUp"]
4227        [::std::mem::offset_of!(ScreenVTABLE, OnInputUp) - 48usize];
4228    ["Offset of field: ScreenVTABLE::HandlesKeyPress"]
4229        [::std::mem::offset_of!(ScreenVTABLE, HandlesKeyPress) - 56usize];
4230    ["Offset of field: ScreenVTABLE::HandlesTextChanged"]
4231        [::std::mem::offset_of!(ScreenVTABLE, HandlesTextChanged) - 64usize];
4232    ["Offset of field: ScreenVTABLE::HandlesPointerDown"]
4233        [::std::mem::offset_of!(ScreenVTABLE, HandlesPointerDown) - 72usize];
4234    ["Offset of field: ScreenVTABLE::OnPointerUp"]
4235        [::std::mem::offset_of!(ScreenVTABLE, OnPointerUp) - 80usize];
4236    ["Offset of field: ScreenVTABLE::HandlesPointerMove"]
4237        [::std::mem::offset_of!(ScreenVTABLE, HandlesPointerMove) - 88usize];
4238    ["Offset of field: ScreenVTABLE::HandlesMouseScroll"]
4239        [::std::mem::offset_of!(ScreenVTABLE, HandlesMouseScroll) - 96usize];
4240    ["Offset of field: ScreenVTABLE::Layout"]
4241        [::std::mem::offset_of!(ScreenVTABLE, Layout) - 104usize];
4242    ["Offset of field: ScreenVTABLE::ContextLost"]
4243        [::std::mem::offset_of!(ScreenVTABLE, ContextLost) - 112usize];
4244    ["Offset of field: ScreenVTABLE::ContextRecreated"]
4245        [::std::mem::offset_of!(ScreenVTABLE, ContextRecreated) - 120usize];
4246    ["Offset of field: ScreenVTABLE::HandlesPadAxis"]
4247        [::std::mem::offset_of!(ScreenVTABLE, HandlesPadAxis) - 128usize];
4248};
4249#[repr(C)]
4250#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4251pub struct Screen {
4252    pub VTABLE: *const ScreenVTABLE,
4253    pub grabsInput: cc_bool,
4254    pub blocksWorld: cc_bool,
4255    pub closable: cc_bool,
4256    pub dirty: cc_bool,
4257    pub maxVertices: ::std::os::raw::c_int,
4258    pub vb: GfxResourceID,
4259    pub widgets: *mut *mut Widget,
4260    pub numWidgets: ::std::os::raw::c_int,
4261    pub selectedI: ::std::os::raw::c_int,
4262    pub maxWidgets: ::std::os::raw::c_int,
4263}
4264#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4265const _: () = {
4266    ["Size of Screen"][::std::mem::size_of::<Screen>() - 48usize];
4267    ["Alignment of Screen"][::std::mem::align_of::<Screen>() - 8usize];
4268    ["Offset of field: Screen::VTABLE"][::std::mem::offset_of!(Screen, VTABLE) - 0usize];
4269    ["Offset of field: Screen::grabsInput"][::std::mem::offset_of!(Screen, grabsInput) - 8usize];
4270    ["Offset of field: Screen::blocksWorld"][::std::mem::offset_of!(Screen, blocksWorld) - 9usize];
4271    ["Offset of field: Screen::closable"][::std::mem::offset_of!(Screen, closable) - 10usize];
4272    ["Offset of field: Screen::dirty"][::std::mem::offset_of!(Screen, dirty) - 11usize];
4273    ["Offset of field: Screen::maxVertices"][::std::mem::offset_of!(Screen, maxVertices) - 12usize];
4274    ["Offset of field: Screen::vb"][::std::mem::offset_of!(Screen, vb) - 16usize];
4275    ["Offset of field: Screen::widgets"][::std::mem::offset_of!(Screen, widgets) - 24usize];
4276    ["Offset of field: Screen::numWidgets"][::std::mem::offset_of!(Screen, numWidgets) - 32usize];
4277    ["Offset of field: Screen::selectedI"][::std::mem::offset_of!(Screen, selectedI) - 36usize];
4278    ["Offset of field: Screen::maxWidgets"][::std::mem::offset_of!(Screen, maxWidgets) - 40usize];
4279};
4280pub type Widget_LeftClick = ::std::option::Option<
4281    unsafe extern "C" fn(screen: *mut ::std::os::raw::c_void, widget: *mut ::std::os::raw::c_void),
4282>;
4283#[repr(C)]
4284#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4285pub struct WidgetVTABLE {
4286    pub Render:
4287        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void, delta: f32)>,
4288    pub Free: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4289    pub Reposition: ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
4290    pub HandlesKeyDown: ::std::option::Option<
4291        unsafe extern "C" fn(
4292            elem: *mut ::std::os::raw::c_void,
4293            key: ::std::os::raw::c_int,
4294            device: *mut InputDevice,
4295        ) -> ::std::os::raw::c_int,
4296    >,
4297    pub OnInputUp: ::std::option::Option<
4298        unsafe extern "C" fn(
4299            elem: *mut ::std::os::raw::c_void,
4300            key: ::std::os::raw::c_int,
4301            device: *mut InputDevice,
4302        ),
4303    >,
4304    pub HandlesMouseScroll: ::std::option::Option<
4305        unsafe extern "C" fn(
4306            elem: *mut ::std::os::raw::c_void,
4307            delta: f32,
4308        ) -> ::std::os::raw::c_int,
4309    >,
4310    pub HandlesPointerDown: ::std::option::Option<
4311        unsafe extern "C" fn(
4312            elem: *mut ::std::os::raw::c_void,
4313            id: ::std::os::raw::c_int,
4314            x: ::std::os::raw::c_int,
4315            y: ::std::os::raw::c_int,
4316        ) -> ::std::os::raw::c_int,
4317    >,
4318    pub OnPointerUp: ::std::option::Option<
4319        unsafe extern "C" fn(
4320            elem: *mut ::std::os::raw::c_void,
4321            id: ::std::os::raw::c_int,
4322            x: ::std::os::raw::c_int,
4323            y: ::std::os::raw::c_int,
4324        ),
4325    >,
4326    pub HandlesPointerMove: ::std::option::Option<
4327        unsafe extern "C" fn(
4328            elem: *mut ::std::os::raw::c_void,
4329            id: ::std::os::raw::c_int,
4330            x: ::std::os::raw::c_int,
4331            y: ::std::os::raw::c_int,
4332        ) -> ::std::os::raw::c_int,
4333    >,
4334    pub BuildMesh: ::std::option::Option<
4335        unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void, vertices: *mut *mut VertexTextured),
4336    >,
4337    pub Render2: ::std::option::Option<
4338        unsafe extern "C" fn(
4339            elem: *mut ::std::os::raw::c_void,
4340            offset: ::std::os::raw::c_int,
4341        ) -> ::std::os::raw::c_int,
4342    >,
4343    pub GetMaxVertices: ::std::option::Option<
4344        unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
4345    >,
4346    pub HandlesPadAxis: ::std::option::Option<
4347        unsafe extern "C" fn(
4348            elem: *mut ::std::os::raw::c_void,
4349            axis: ::std::os::raw::c_int,
4350            x: f32,
4351            y: f32,
4352        ) -> ::std::os::raw::c_int,
4353    >,
4354}
4355#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4356const _: () = {
4357    ["Size of WidgetVTABLE"][::std::mem::size_of::<WidgetVTABLE>() - 104usize];
4358    ["Alignment of WidgetVTABLE"][::std::mem::align_of::<WidgetVTABLE>() - 8usize];
4359    ["Offset of field: WidgetVTABLE::Render"]
4360        [::std::mem::offset_of!(WidgetVTABLE, Render) - 0usize];
4361    ["Offset of field: WidgetVTABLE::Free"][::std::mem::offset_of!(WidgetVTABLE, Free) - 8usize];
4362    ["Offset of field: WidgetVTABLE::Reposition"]
4363        [::std::mem::offset_of!(WidgetVTABLE, Reposition) - 16usize];
4364    ["Offset of field: WidgetVTABLE::HandlesKeyDown"]
4365        [::std::mem::offset_of!(WidgetVTABLE, HandlesKeyDown) - 24usize];
4366    ["Offset of field: WidgetVTABLE::OnInputUp"]
4367        [::std::mem::offset_of!(WidgetVTABLE, OnInputUp) - 32usize];
4368    ["Offset of field: WidgetVTABLE::HandlesMouseScroll"]
4369        [::std::mem::offset_of!(WidgetVTABLE, HandlesMouseScroll) - 40usize];
4370    ["Offset of field: WidgetVTABLE::HandlesPointerDown"]
4371        [::std::mem::offset_of!(WidgetVTABLE, HandlesPointerDown) - 48usize];
4372    ["Offset of field: WidgetVTABLE::OnPointerUp"]
4373        [::std::mem::offset_of!(WidgetVTABLE, OnPointerUp) - 56usize];
4374    ["Offset of field: WidgetVTABLE::HandlesPointerMove"]
4375        [::std::mem::offset_of!(WidgetVTABLE, HandlesPointerMove) - 64usize];
4376    ["Offset of field: WidgetVTABLE::BuildMesh"]
4377        [::std::mem::offset_of!(WidgetVTABLE, BuildMesh) - 72usize];
4378    ["Offset of field: WidgetVTABLE::Render2"]
4379        [::std::mem::offset_of!(WidgetVTABLE, Render2) - 80usize];
4380    ["Offset of field: WidgetVTABLE::GetMaxVertices"]
4381        [::std::mem::offset_of!(WidgetVTABLE, GetMaxVertices) - 88usize];
4382    ["Offset of field: WidgetVTABLE::HandlesPadAxis"]
4383        [::std::mem::offset_of!(WidgetVTABLE, HandlesPadAxis) - 96usize];
4384};
4385#[repr(C)]
4386#[derive(Copy, Clone)]
4387pub struct Widget {
4388    pub VTABLE: *const WidgetVTABLE,
4389    pub x: ::std::os::raw::c_int,
4390    pub y: ::std::os::raw::c_int,
4391    pub width: ::std::os::raw::c_int,
4392    pub height: ::std::os::raw::c_int,
4393    pub active: cc_bool,
4394    pub flags: cc_uint8,
4395    pub horAnchor: cc_uint8,
4396    pub verAnchor: cc_uint8,
4397    pub xOffset: ::std::os::raw::c_int,
4398    pub yOffset: ::std::os::raw::c_int,
4399    pub MenuClick: Widget_LeftClick,
4400    pub meta: cc_pointer,
4401}
4402#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4403const _: () = {
4404    ["Size of Widget"][::std::mem::size_of::<Widget>() - 56usize];
4405    ["Alignment of Widget"][::std::mem::align_of::<Widget>() - 8usize];
4406    ["Offset of field: Widget::VTABLE"][::std::mem::offset_of!(Widget, VTABLE) - 0usize];
4407    ["Offset of field: Widget::x"][::std::mem::offset_of!(Widget, x) - 8usize];
4408    ["Offset of field: Widget::y"][::std::mem::offset_of!(Widget, y) - 12usize];
4409    ["Offset of field: Widget::width"][::std::mem::offset_of!(Widget, width) - 16usize];
4410    ["Offset of field: Widget::height"][::std::mem::offset_of!(Widget, height) - 20usize];
4411    ["Offset of field: Widget::active"][::std::mem::offset_of!(Widget, active) - 24usize];
4412    ["Offset of field: Widget::flags"][::std::mem::offset_of!(Widget, flags) - 25usize];
4413    ["Offset of field: Widget::horAnchor"][::std::mem::offset_of!(Widget, horAnchor) - 26usize];
4414    ["Offset of field: Widget::verAnchor"][::std::mem::offset_of!(Widget, verAnchor) - 27usize];
4415    ["Offset of field: Widget::xOffset"][::std::mem::offset_of!(Widget, xOffset) - 28usize];
4416    ["Offset of field: Widget::yOffset"][::std::mem::offset_of!(Widget, yOffset) - 32usize];
4417    ["Offset of field: Widget::MenuClick"][::std::mem::offset_of!(Widget, MenuClick) - 40usize];
4418    ["Offset of field: Widget::meta"][::std::mem::offset_of!(Widget, meta) - 48usize];
4419};
4420pub const GuiPriority_GUI_PRIORITY_DISCONNECT: GuiPriority = 60;
4421pub const GuiPriority_GUI_PRIORITY_OLDLOADING: GuiPriority = 55;
4422pub const GuiPriority_GUI_PRIORITY_MENUINPUT: GuiPriority = 57;
4423pub const GuiPriority_GUI_PRIORITY_MENU: GuiPriority = 50;
4424pub const GuiPriority_GUI_PRIORITY_TOUCHMORE: GuiPriority = 45;
4425pub const GuiPriority_GUI_PRIORITY_URLWARNING: GuiPriority = 40;
4426pub const GuiPriority_GUI_PRIORITY_TEXPACK: GuiPriority = 35;
4427pub const GuiPriority_GUI_PRIORITY_TEXIDS: GuiPriority = 30;
4428pub const GuiPriority_GUI_PRIORITY_TOUCH: GuiPriority = 25;
4429pub const GuiPriority_GUI_PRIORITY_INVENTORY: GuiPriority = 20;
4430pub const GuiPriority_GUI_PRIORITY_TABLIST: GuiPriority = 17;
4431pub const GuiPriority_GUI_PRIORITY_CHAT: GuiPriority = 15;
4432pub const GuiPriority_GUI_PRIORITY_HUD: GuiPriority = 10;
4433pub const GuiPriority_GUI_PRIORITY_LOADING: GuiPriority = 5;
4434pub type GuiPriority = ::std::os::raw::c_int;
4435unsafe extern "C" {
4436    pub fn Gui_Remove(screen: *mut Screen);
4437}
4438unsafe extern "C" {
4439    pub fn Gui_Add(screen: *mut Screen, priority: ::std::os::raw::c_int);
4440}
4441unsafe extern "C" {
4442    pub fn Gui_GetInputGrab() -> *mut Screen;
4443}
4444unsafe extern "C" {
4445    pub fn Gui_GetScreen(priority: ::std::os::raw::c_int) -> *mut Screen;
4446}
4447#[repr(C)]
4448#[derive(Debug, PartialEq)]
4449pub struct TextAtlas {
4450    pub tex: Texture,
4451    pub offset: ::std::os::raw::c_int,
4452    pub curX: ::std::os::raw::c_int,
4453    pub uScale: f32,
4454    pub widths: [::std::os::raw::c_short; 16usize],
4455    pub offsets: [::std::os::raw::c_short; 16usize],
4456}
4457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4458const _: () = {
4459    ["Size of TextAtlas"][::std::mem::size_of::<TextAtlas>() - 112usize];
4460    ["Alignment of TextAtlas"][::std::mem::align_of::<TextAtlas>() - 8usize];
4461    ["Offset of field: TextAtlas::tex"][::std::mem::offset_of!(TextAtlas, tex) - 0usize];
4462    ["Offset of field: TextAtlas::offset"][::std::mem::offset_of!(TextAtlas, offset) - 32usize];
4463    ["Offset of field: TextAtlas::curX"][::std::mem::offset_of!(TextAtlas, curX) - 36usize];
4464    ["Offset of field: TextAtlas::uScale"][::std::mem::offset_of!(TextAtlas, uScale) - 40usize];
4465    ["Offset of field: TextAtlas::widths"][::std::mem::offset_of!(TextAtlas, widths) - 44usize];
4466    ["Offset of field: TextAtlas::offsets"][::std::mem::offset_of!(TextAtlas, offsets) - 76usize];
4467};
4468pub const HttpRequestType_REQUEST_TYPE_GET: HttpRequestType = 0;
4469pub const HttpRequestType_REQUEST_TYPE_HEAD: HttpRequestType = 1;
4470pub const HttpRequestType_REQUEST_TYPE_POST: HttpRequestType = 2;
4471pub type HttpRequestType = ::std::os::raw::c_int;
4472pub const HttpProgress_HTTP_PROGRESS_NOT_WORKING_ON: HttpProgress = -3;
4473pub const HttpProgress_HTTP_PROGRESS_MAKING_REQUEST: HttpProgress = -2;
4474pub const HttpProgress_HTTP_PROGRESS_FETCHING_DATA: HttpProgress = -1;
4475pub type HttpProgress = ::std::os::raw::c_int;
4476#[repr(C)]
4477#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4478pub struct HttpRequest {
4479    pub url: [::std::os::raw::c_char; 128usize],
4480    pub id: ::std::os::raw::c_int,
4481    pub progress: ::std::os::raw::c_int,
4482    pub timeDownloaded: cc_uint64,
4483    pub statusCode: ::std::os::raw::c_int,
4484    pub contentLength: cc_uint32,
4485    pub result: cc_result,
4486    pub data: *mut cc_uint8,
4487    pub size: cc_uint32,
4488    pub _capacity: cc_uint32,
4489    pub meta: *mut ::std::os::raw::c_void,
4490    pub error: *mut ::std::os::raw::c_char,
4491    pub lastModified: [::std::os::raw::c_char; 64usize],
4492    pub etag: [::std::os::raw::c_char; 64usize],
4493    pub requestType: cc_uint8,
4494    pub success: cc_bool,
4495    pub cookies: *mut StringsBuffer,
4496}
4497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4498const _: () = {
4499    ["Size of HttpRequest"][::std::mem::size_of::<HttpRequest>() - 336usize];
4500    ["Alignment of HttpRequest"][::std::mem::align_of::<HttpRequest>() - 8usize];
4501    ["Offset of field: HttpRequest::url"][::std::mem::offset_of!(HttpRequest, url) - 0usize];
4502    ["Offset of field: HttpRequest::id"][::std::mem::offset_of!(HttpRequest, id) - 128usize];
4503    ["Offset of field: HttpRequest::progress"]
4504        [::std::mem::offset_of!(HttpRequest, progress) - 132usize];
4505    ["Offset of field: HttpRequest::timeDownloaded"]
4506        [::std::mem::offset_of!(HttpRequest, timeDownloaded) - 136usize];
4507    ["Offset of field: HttpRequest::statusCode"]
4508        [::std::mem::offset_of!(HttpRequest, statusCode) - 144usize];
4509    ["Offset of field: HttpRequest::contentLength"]
4510        [::std::mem::offset_of!(HttpRequest, contentLength) - 148usize];
4511    ["Offset of field: HttpRequest::result"]
4512        [::std::mem::offset_of!(HttpRequest, result) - 152usize];
4513    ["Offset of field: HttpRequest::data"][::std::mem::offset_of!(HttpRequest, data) - 160usize];
4514    ["Offset of field: HttpRequest::size"][::std::mem::offset_of!(HttpRequest, size) - 168usize];
4515    ["Offset of field: HttpRequest::_capacity"]
4516        [::std::mem::offset_of!(HttpRequest, _capacity) - 172usize];
4517    ["Offset of field: HttpRequest::meta"][::std::mem::offset_of!(HttpRequest, meta) - 176usize];
4518    ["Offset of field: HttpRequest::error"][::std::mem::offset_of!(HttpRequest, error) - 184usize];
4519    ["Offset of field: HttpRequest::lastModified"]
4520        [::std::mem::offset_of!(HttpRequest, lastModified) - 192usize];
4521    ["Offset of field: HttpRequest::etag"][::std::mem::offset_of!(HttpRequest, etag) - 256usize];
4522    ["Offset of field: HttpRequest::requestType"]
4523        [::std::mem::offset_of!(HttpRequest, requestType) - 320usize];
4524    ["Offset of field: HttpRequest::success"]
4525        [::std::mem::offset_of!(HttpRequest, success) - 321usize];
4526    ["Offset of field: HttpRequest::cookies"]
4527        [::std::mem::offset_of!(HttpRequest, cookies) - 328usize];
4528};
4529pub const InputButtons_INPUT_NONE: InputButtons = 0;
4530pub const InputButtons_CCKEY_F1: InputButtons = 1;
4531pub const InputButtons_CCKEY_F2: InputButtons = 2;
4532pub const InputButtons_CCKEY_F3: InputButtons = 3;
4533pub const InputButtons_CCKEY_F4: InputButtons = 4;
4534pub const InputButtons_CCKEY_F5: InputButtons = 5;
4535pub const InputButtons_CCKEY_F6: InputButtons = 6;
4536pub const InputButtons_CCKEY_F7: InputButtons = 7;
4537pub const InputButtons_CCKEY_F8: InputButtons = 8;
4538pub const InputButtons_CCKEY_F9: InputButtons = 9;
4539pub const InputButtons_CCKEY_F10: InputButtons = 10;
4540pub const InputButtons_CCKEY_F11: InputButtons = 11;
4541pub const InputButtons_CCKEY_F12: InputButtons = 12;
4542pub const InputButtons_CCKEY_F13: InputButtons = 13;
4543pub const InputButtons_CCKEY_F14: InputButtons = 14;
4544pub const InputButtons_CCKEY_F15: InputButtons = 15;
4545pub const InputButtons_CCKEY_F16: InputButtons = 16;
4546pub const InputButtons_CCKEY_F17: InputButtons = 17;
4547pub const InputButtons_CCKEY_F18: InputButtons = 18;
4548pub const InputButtons_CCKEY_F19: InputButtons = 19;
4549pub const InputButtons_CCKEY_F20: InputButtons = 20;
4550pub const InputButtons_CCKEY_F21: InputButtons = 21;
4551pub const InputButtons_CCKEY_F22: InputButtons = 22;
4552pub const InputButtons_CCKEY_F23: InputButtons = 23;
4553pub const InputButtons_CCKEY_F24: InputButtons = 24;
4554pub const InputButtons_CCKEY_TILDE: InputButtons = 25;
4555pub const InputButtons_CCKEY_MINUS: InputButtons = 26;
4556pub const InputButtons_CCKEY_EQUALS: InputButtons = 27;
4557pub const InputButtons_CCKEY_LBRACKET: InputButtons = 28;
4558pub const InputButtons_CCKEY_RBRACKET: InputButtons = 29;
4559pub const InputButtons_CCKEY_SLASH: InputButtons = 30;
4560pub const InputButtons_CCKEY_SEMICOLON: InputButtons = 31;
4561pub const InputButtons_CCKEY_QUOTE: InputButtons = 32;
4562pub const InputButtons_CCKEY_COMMA: InputButtons = 33;
4563pub const InputButtons_CCKEY_PERIOD: InputButtons = 34;
4564pub const InputButtons_CCKEY_BACKSLASH: InputButtons = 35;
4565pub const InputButtons_CCKEY_LSHIFT: InputButtons = 36;
4566pub const InputButtons_CCKEY_RSHIFT: InputButtons = 37;
4567pub const InputButtons_CCKEY_LCTRL: InputButtons = 38;
4568pub const InputButtons_CCKEY_RCTRL: InputButtons = 39;
4569pub const InputButtons_CCKEY_LALT: InputButtons = 40;
4570pub const InputButtons_CCKEY_RALT: InputButtons = 41;
4571pub const InputButtons_CCKEY_LWIN: InputButtons = 42;
4572pub const InputButtons_CCKEY_RWIN: InputButtons = 43;
4573pub const InputButtons_CCKEY_UP: InputButtons = 44;
4574pub const InputButtons_CCKEY_DOWN: InputButtons = 45;
4575pub const InputButtons_CCKEY_LEFT: InputButtons = 46;
4576pub const InputButtons_CCKEY_RIGHT: InputButtons = 47;
4577pub const InputButtons_CCKEY_0: InputButtons = 48;
4578pub const InputButtons_CCKEY_1: InputButtons = 49;
4579pub const InputButtons_CCKEY_2: InputButtons = 50;
4580pub const InputButtons_CCKEY_3: InputButtons = 51;
4581pub const InputButtons_CCKEY_4: InputButtons = 52;
4582pub const InputButtons_CCKEY_5: InputButtons = 53;
4583pub const InputButtons_CCKEY_6: InputButtons = 54;
4584pub const InputButtons_CCKEY_7: InputButtons = 55;
4585pub const InputButtons_CCKEY_8: InputButtons = 56;
4586pub const InputButtons_CCKEY_9: InputButtons = 57;
4587pub const InputButtons_CCKEY_INSERT: InputButtons = 58;
4588pub const InputButtons_CCKEY_DELETE: InputButtons = 59;
4589pub const InputButtons_CCKEY_HOME: InputButtons = 60;
4590pub const InputButtons_CCKEY_END: InputButtons = 61;
4591pub const InputButtons_CCKEY_PAGEUP: InputButtons = 62;
4592pub const InputButtons_CCKEY_PAGEDOWN: InputButtons = 63;
4593pub const InputButtons_CCKEY_MENU: InputButtons = 64;
4594pub const InputButtons_CCKEY_A: InputButtons = 65;
4595pub const InputButtons_CCKEY_B: InputButtons = 66;
4596pub const InputButtons_CCKEY_C: InputButtons = 67;
4597pub const InputButtons_CCKEY_D: InputButtons = 68;
4598pub const InputButtons_CCKEY_E: InputButtons = 69;
4599pub const InputButtons_CCKEY_F: InputButtons = 70;
4600pub const InputButtons_CCKEY_G: InputButtons = 71;
4601pub const InputButtons_CCKEY_H: InputButtons = 72;
4602pub const InputButtons_CCKEY_I: InputButtons = 73;
4603pub const InputButtons_CCKEY_J: InputButtons = 74;
4604pub const InputButtons_CCKEY_K: InputButtons = 75;
4605pub const InputButtons_CCKEY_L: InputButtons = 76;
4606pub const InputButtons_CCKEY_M: InputButtons = 77;
4607pub const InputButtons_CCKEY_N: InputButtons = 78;
4608pub const InputButtons_CCKEY_O: InputButtons = 79;
4609pub const InputButtons_CCKEY_P: InputButtons = 80;
4610pub const InputButtons_CCKEY_Q: InputButtons = 81;
4611pub const InputButtons_CCKEY_R: InputButtons = 82;
4612pub const InputButtons_CCKEY_S: InputButtons = 83;
4613pub const InputButtons_CCKEY_T: InputButtons = 84;
4614pub const InputButtons_CCKEY_U: InputButtons = 85;
4615pub const InputButtons_CCKEY_V: InputButtons = 86;
4616pub const InputButtons_CCKEY_W: InputButtons = 87;
4617pub const InputButtons_CCKEY_X: InputButtons = 88;
4618pub const InputButtons_CCKEY_Y: InputButtons = 89;
4619pub const InputButtons_CCKEY_Z: InputButtons = 90;
4620pub const InputButtons_CCKEY_ENTER: InputButtons = 91;
4621pub const InputButtons_CCKEY_ESCAPE: InputButtons = 92;
4622pub const InputButtons_CCKEY_SPACE: InputButtons = 93;
4623pub const InputButtons_CCKEY_BACKSPACE: InputButtons = 94;
4624pub const InputButtons_CCKEY_TAB: InputButtons = 95;
4625pub const InputButtons_CCKEY_CAPSLOCK: InputButtons = 96;
4626pub const InputButtons_CCKEY_SCROLLLOCK: InputButtons = 97;
4627pub const InputButtons_CCKEY_PRINTSCREEN: InputButtons = 98;
4628pub const InputButtons_CCKEY_PAUSE: InputButtons = 99;
4629pub const InputButtons_CCKEY_NUMLOCK: InputButtons = 100;
4630pub const InputButtons_CCKEY_KP0: InputButtons = 101;
4631pub const InputButtons_CCKEY_KP1: InputButtons = 102;
4632pub const InputButtons_CCKEY_KP2: InputButtons = 103;
4633pub const InputButtons_CCKEY_KP3: InputButtons = 104;
4634pub const InputButtons_CCKEY_KP4: InputButtons = 105;
4635pub const InputButtons_CCKEY_KP5: InputButtons = 106;
4636pub const InputButtons_CCKEY_KP6: InputButtons = 107;
4637pub const InputButtons_CCKEY_KP7: InputButtons = 108;
4638pub const InputButtons_CCKEY_KP8: InputButtons = 109;
4639pub const InputButtons_CCKEY_KP9: InputButtons = 110;
4640pub const InputButtons_CCKEY_KP_DIVIDE: InputButtons = 111;
4641pub const InputButtons_CCKEY_KP_MULTIPLY: InputButtons = 112;
4642pub const InputButtons_CCKEY_KP_MINUS: InputButtons = 113;
4643pub const InputButtons_CCKEY_KP_PLUS: InputButtons = 114;
4644pub const InputButtons_CCKEY_KP_DECIMAL: InputButtons = 115;
4645pub const InputButtons_CCKEY_KP_ENTER: InputButtons = 116;
4646pub const InputButtons_CCMOUSE_X1: InputButtons = 117;
4647pub const InputButtons_CCMOUSE_X2: InputButtons = 118;
4648pub const InputButtons_CCMOUSE_L: InputButtons = 119;
4649pub const InputButtons_CCMOUSE_R: InputButtons = 120;
4650pub const InputButtons_CCMOUSE_M: InputButtons = 121;
4651pub const InputButtons_CCWHEEL_UP: InputButtons = 122;
4652pub const InputButtons_CCWHEEL_DOWN: InputButtons = 123;
4653pub const InputButtons_CCWHEEL_LEFT: InputButtons = 124;
4654pub const InputButtons_CCWHEEL_RIGHT: InputButtons = 125;
4655pub const InputButtons_CCMOUSE_X3: InputButtons = 126;
4656pub const InputButtons_CCMOUSE_X4: InputButtons = 127;
4657pub const InputButtons_CCMOUSE_X5: InputButtons = 128;
4658pub const InputButtons_CCMOUSE_X6: InputButtons = 129;
4659pub const InputButtons_CCKEY_VOLUME_MUTE: InputButtons = 130;
4660pub const InputButtons_CCKEY_VOLUME_UP: InputButtons = 131;
4661pub const InputButtons_CCKEY_VOLUME_DOWN: InputButtons = 132;
4662pub const InputButtons_CCKEY_SLEEP: InputButtons = 133;
4663pub const InputButtons_CCKEY_MEDIA_NEXT: InputButtons = 134;
4664pub const InputButtons_CCKEY_MEDIA_PREV: InputButtons = 135;
4665pub const InputButtons_CCKEY_MEDIA_PLAY: InputButtons = 136;
4666pub const InputButtons_CCKEY_MEDIA_STOP: InputButtons = 137;
4667pub const InputButtons_CCKEY_BROWSER_PREV: InputButtons = 138;
4668pub const InputButtons_CCKEY_BROWSER_NEXT: InputButtons = 139;
4669pub const InputButtons_CCKEY_BROWSER_REFRESH: InputButtons = 140;
4670pub const InputButtons_CCKEY_BROWSER_STOP: InputButtons = 141;
4671pub const InputButtons_CCKEY_BROWSER_SEARCH: InputButtons = 142;
4672pub const InputButtons_CCKEY_BROWSER_FAVORITES: InputButtons = 143;
4673pub const InputButtons_CCKEY_BROWSER_HOME: InputButtons = 144;
4674pub const InputButtons_CCKEY_LAUNCH_MAIL: InputButtons = 145;
4675pub const InputButtons_CCKEY_LAUNCH_MEDIA: InputButtons = 146;
4676pub const InputButtons_CCKEY_LAUNCH_APP1: InputButtons = 147;
4677pub const InputButtons_CCKEY_LAUNCH_CALC: InputButtons = 148;
4678pub const InputButtons_CCPAD_1: InputButtons = 149;
4679pub const InputButtons_CCPAD_2: InputButtons = 150;
4680pub const InputButtons_CCPAD_3: InputButtons = 151;
4681pub const InputButtons_CCPAD_4: InputButtons = 152;
4682pub const InputButtons_CCPAD_L: InputButtons = 153;
4683pub const InputButtons_CCPAD_R: InputButtons = 154;
4684pub const InputButtons_CCPAD_5: InputButtons = 155;
4685pub const InputButtons_CCPAD_6: InputButtons = 156;
4686pub const InputButtons_CCPAD_7: InputButtons = 157;
4687pub const InputButtons_CCPAD_LEFT: InputButtons = 158;
4688pub const InputButtons_CCPAD_RIGHT: InputButtons = 159;
4689pub const InputButtons_CCPAD_UP: InputButtons = 160;
4690pub const InputButtons_CCPAD_DOWN: InputButtons = 161;
4691pub const InputButtons_CCPAD_START: InputButtons = 162;
4692pub const InputButtons_CCPAD_SELECT: InputButtons = 163;
4693pub const InputButtons_CCPAD_ZL: InputButtons = 164;
4694pub const InputButtons_CCPAD_ZR: InputButtons = 165;
4695pub const InputButtons_CCPAD_LSTICK: InputButtons = 166;
4696pub const InputButtons_CCPAD_RSTICK: InputButtons = 167;
4697pub const InputButtons_CCPAD_CLEFT: InputButtons = 168;
4698pub const InputButtons_CCPAD_CRIGHT: InputButtons = 169;
4699pub const InputButtons_CCPAD_CUP: InputButtons = 170;
4700pub const InputButtons_CCPAD_CDOWN: InputButtons = 171;
4701pub const InputButtons_INPUT_COUNT: InputButtons = 172;
4702pub const InputButtons_INPUT_CLIPBOARD_COPY: InputButtons = 1001;
4703pub const InputButtons_INPUT_CLIPBOARD_PASTE: InputButtons = 1002;
4704pub type InputButtons = ::std::os::raw::c_int;
4705#[repr(C)]
4706#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4707pub struct _InputState {
4708    pub Pressed: [cc_bool; 172usize],
4709    pub RawMode: cc_bool,
4710    pub Sources: cc_uint8,
4711    pub DownHook: ::std::option::Option<
4712        unsafe extern "C" fn(btn: ::std::os::raw::c_int, device: *mut InputDevice),
4713    >,
4714}
4715#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4716const _: () = {
4717    ["Size of _InputState"][::std::mem::size_of::<_InputState>() - 184usize];
4718    ["Alignment of _InputState"][::std::mem::align_of::<_InputState>() - 8usize];
4719    ["Offset of field: _InputState::Pressed"]
4720        [::std::mem::offset_of!(_InputState, Pressed) - 0usize];
4721    ["Offset of field: _InputState::RawMode"]
4722        [::std::mem::offset_of!(_InputState, RawMode) - 172usize];
4723    ["Offset of field: _InputState::Sources"]
4724        [::std::mem::offset_of!(_InputState, Sources) - 173usize];
4725    ["Offset of field: _InputState::DownHook"]
4726        [::std::mem::offset_of!(_InputState, DownHook) - 176usize];
4727};
4728pub type InputDevice_IsPressed = ::std::option::Option<
4729    unsafe extern "C" fn(device: *mut InputDevice, key: ::std::os::raw::c_int) -> cc_bool,
4730>;
4731#[repr(C)]
4732#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4733pub struct InputDevice {
4734    pub type_: ::std::os::raw::c_int,
4735    pub rawIndex: ::std::os::raw::c_int,
4736    pub mappedIndex: ::std::os::raw::c_int,
4737    pub IsPressed: InputDevice_IsPressed,
4738    pub upButton: ::std::os::raw::c_int,
4739    pub downButton: ::std::os::raw::c_int,
4740    pub leftButton: ::std::os::raw::c_int,
4741    pub rightButton: ::std::os::raw::c_int,
4742    pub enterButton1: ::std::os::raw::c_int,
4743    pub enterButton2: ::std::os::raw::c_int,
4744    pub pauseButton1: ::std::os::raw::c_int,
4745    pub pauseButton2: ::std::os::raw::c_int,
4746    pub escapeButton: ::std::os::raw::c_int,
4747    pub pageUpButton: ::std::os::raw::c_int,
4748    pub pageDownButton: ::std::os::raw::c_int,
4749    pub tabLauncher: ::std::os::raw::c_int,
4750    pub bindPrefix: *const ::std::os::raw::c_char,
4751    pub defaultBinds: *const BindMapping_,
4752    pub currentBinds: *mut BindMapping_,
4753}
4754#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4755const _: () = {
4756    ["Size of InputDevice"][::std::mem::size_of::<InputDevice>() - 96usize];
4757    ["Alignment of InputDevice"][::std::mem::align_of::<InputDevice>() - 8usize];
4758    ["Offset of field: InputDevice::type_"][::std::mem::offset_of!(InputDevice, type_) - 0usize];
4759    ["Offset of field: InputDevice::rawIndex"]
4760        [::std::mem::offset_of!(InputDevice, rawIndex) - 4usize];
4761    ["Offset of field: InputDevice::mappedIndex"]
4762        [::std::mem::offset_of!(InputDevice, mappedIndex) - 8usize];
4763    ["Offset of field: InputDevice::IsPressed"]
4764        [::std::mem::offset_of!(InputDevice, IsPressed) - 16usize];
4765    ["Offset of field: InputDevice::upButton"]
4766        [::std::mem::offset_of!(InputDevice, upButton) - 24usize];
4767    ["Offset of field: InputDevice::downButton"]
4768        [::std::mem::offset_of!(InputDevice, downButton) - 28usize];
4769    ["Offset of field: InputDevice::leftButton"]
4770        [::std::mem::offset_of!(InputDevice, leftButton) - 32usize];
4771    ["Offset of field: InputDevice::rightButton"]
4772        [::std::mem::offset_of!(InputDevice, rightButton) - 36usize];
4773    ["Offset of field: InputDevice::enterButton1"]
4774        [::std::mem::offset_of!(InputDevice, enterButton1) - 40usize];
4775    ["Offset of field: InputDevice::enterButton2"]
4776        [::std::mem::offset_of!(InputDevice, enterButton2) - 44usize];
4777    ["Offset of field: InputDevice::pauseButton1"]
4778        [::std::mem::offset_of!(InputDevice, pauseButton1) - 48usize];
4779    ["Offset of field: InputDevice::pauseButton2"]
4780        [::std::mem::offset_of!(InputDevice, pauseButton2) - 52usize];
4781    ["Offset of field: InputDevice::escapeButton"]
4782        [::std::mem::offset_of!(InputDevice, escapeButton) - 56usize];
4783    ["Offset of field: InputDevice::pageUpButton"]
4784        [::std::mem::offset_of!(InputDevice, pageUpButton) - 60usize];
4785    ["Offset of field: InputDevice::pageDownButton"]
4786        [::std::mem::offset_of!(InputDevice, pageDownButton) - 64usize];
4787    ["Offset of field: InputDevice::tabLauncher"]
4788        [::std::mem::offset_of!(InputDevice, tabLauncher) - 68usize];
4789    ["Offset of field: InputDevice::bindPrefix"]
4790        [::std::mem::offset_of!(InputDevice, bindPrefix) - 72usize];
4791    ["Offset of field: InputDevice::defaultBinds"]
4792        [::std::mem::offset_of!(InputDevice, defaultBinds) - 80usize];
4793    ["Offset of field: InputDevice::currentBinds"]
4794        [::std::mem::offset_of!(InputDevice, currentBinds) - 88usize];
4795};
4796#[repr(C)]
4797#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4798pub struct Pointer {
4799    pub x: ::std::os::raw::c_int,
4800    pub y: ::std::os::raw::c_int,
4801    pub DownHook: ::std::option::Option<unsafe extern "C" fn(index: ::std::os::raw::c_int)>,
4802    pub UpHook: ::std::option::Option<unsafe extern "C" fn(index: ::std::os::raw::c_int)>,
4803}
4804#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4805const _: () = {
4806    ["Size of Pointer"][::std::mem::size_of::<Pointer>() - 24usize];
4807    ["Alignment of Pointer"][::std::mem::align_of::<Pointer>() - 8usize];
4808    ["Offset of field: Pointer::x"][::std::mem::offset_of!(Pointer, x) - 0usize];
4809    ["Offset of field: Pointer::y"][::std::mem::offset_of!(Pointer, y) - 4usize];
4810    ["Offset of field: Pointer::DownHook"][::std::mem::offset_of!(Pointer, DownHook) - 8usize];
4811    ["Offset of field: Pointer::UpHook"][::std::mem::offset_of!(Pointer, UpHook) - 16usize];
4812};
4813#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
4814    pub static mut Pointers: [Pointer; 1usize];
4815}
4816pub const PAD_AXIS_PAD_AXIS_LEFT: PAD_AXIS = 0;
4817pub const PAD_AXIS_PAD_AXIS_RIGHT: PAD_AXIS = 1;
4818pub type PAD_AXIS = ::std::os::raw::c_int;
4819pub const AXIS_SENSITIVITY_AXIS_SENSI_LOWER: AXIS_SENSITIVITY = 0;
4820pub const AXIS_SENSITIVITY_AXIS_SENSI_LOW: AXIS_SENSITIVITY = 1;
4821pub const AXIS_SENSITIVITY_AXIS_SENSI_NORMAL: AXIS_SENSITIVITY = 2;
4822pub const AXIS_SENSITIVITY_AXIS_SENSI_HIGH: AXIS_SENSITIVITY = 3;
4823pub const AXIS_SENSITIVITY_AXIS_SENSI_HIGHER: AXIS_SENSITIVITY = 4;
4824pub type AXIS_SENSITIVITY = ::std::os::raw::c_int;
4825pub const AXIS_BEHAVIOUR_AXIS_BEHAVIOUR_MOVEMENT: AXIS_BEHAVIOUR = 0;
4826pub const AXIS_BEHAVIOUR_AXIS_BEHAVIOUR_CAMERA: AXIS_BEHAVIOUR = 1;
4827pub type AXIS_BEHAVIOUR = ::std::os::raw::c_int;
4828#[repr(C)]
4829#[derive(Debug, Copy, Clone, PartialEq)]
4830pub struct GamepadDevice {
4831    pub base: InputDevice,
4832    pub deviceID: ::std::os::raw::c_long,
4833    pub axisX: [f32; 2usize],
4834    pub axisY: [f32; 2usize],
4835    pub pressed: [cc_bool; 23usize],
4836    pub holdtime: [f32; 23usize],
4837}
4838#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4839const _: () = {
4840    ["Size of GamepadDevice"][::std::mem::size_of::<GamepadDevice>() - 232usize];
4841    ["Alignment of GamepadDevice"][::std::mem::align_of::<GamepadDevice>() - 8usize];
4842    ["Offset of field: GamepadDevice::base"][::std::mem::offset_of!(GamepadDevice, base) - 0usize];
4843    ["Offset of field: GamepadDevice::deviceID"]
4844        [::std::mem::offset_of!(GamepadDevice, deviceID) - 96usize];
4845    ["Offset of field: GamepadDevice::axisX"]
4846        [::std::mem::offset_of!(GamepadDevice, axisX) - 100usize];
4847    ["Offset of field: GamepadDevice::axisY"]
4848        [::std::mem::offset_of!(GamepadDevice, axisY) - 108usize];
4849    ["Offset of field: GamepadDevice::pressed"]
4850        [::std::mem::offset_of!(GamepadDevice, pressed) - 116usize];
4851    ["Offset of field: GamepadDevice::holdtime"]
4852        [::std::mem::offset_of!(GamepadDevice, holdtime) - 140usize];
4853};
4854pub const InputBind__BIND_FORWARD: InputBind_ = 0;
4855pub const InputBind__BIND_BACK: InputBind_ = 1;
4856pub const InputBind__BIND_LEFT: InputBind_ = 2;
4857pub const InputBind__BIND_RIGHT: InputBind_ = 3;
4858pub const InputBind__BIND_JUMP: InputBind_ = 4;
4859pub const InputBind__BIND_RESPAWN: InputBind_ = 5;
4860pub const InputBind__BIND_SET_SPAWN: InputBind_ = 6;
4861pub const InputBind__BIND_CHAT: InputBind_ = 7;
4862pub const InputBind__BIND_INVENTORY: InputBind_ = 8;
4863pub const InputBind__BIND_FOG: InputBind_ = 9;
4864pub const InputBind__BIND_SEND_CHAT: InputBind_ = 10;
4865pub const InputBind__BIND_TABLIST: InputBind_ = 11;
4866pub const InputBind__BIND_SPEED: InputBind_ = 12;
4867pub const InputBind__BIND_NOCLIP: InputBind_ = 13;
4868pub const InputBind__BIND_FLY: InputBind_ = 14;
4869pub const InputBind__BIND_FLY_UP: InputBind_ = 15;
4870pub const InputBind__BIND_FLY_DOWN: InputBind_ = 16;
4871pub const InputBind__BIND_EXT_INPUT: InputBind_ = 17;
4872pub const InputBind__BIND_HIDE_FPS: InputBind_ = 18;
4873pub const InputBind__BIND_SCREENSHOT: InputBind_ = 19;
4874pub const InputBind__BIND_FULLSCREEN: InputBind_ = 20;
4875pub const InputBind__BIND_THIRD_PERSON: InputBind_ = 21;
4876pub const InputBind__BIND_HIDE_GUI: InputBind_ = 22;
4877pub const InputBind__BIND_AXIS_LINES: InputBind_ = 23;
4878pub const InputBind__BIND_ZOOM_SCROLL: InputBind_ = 24;
4879pub const InputBind__BIND_HALF_SPEED: InputBind_ = 25;
4880pub const InputBind__BIND_DELETE_BLOCK: InputBind_ = 26;
4881pub const InputBind__BIND_PICK_BLOCK: InputBind_ = 27;
4882pub const InputBind__BIND_PLACE_BLOCK: InputBind_ = 28;
4883pub const InputBind__BIND_AUTOROTATE: InputBind_ = 29;
4884pub const InputBind__BIND_HOTBAR_SWITCH: InputBind_ = 30;
4885pub const InputBind__BIND_SMOOTH_CAMERA: InputBind_ = 31;
4886pub const InputBind__BIND_DROP_BLOCK: InputBind_ = 32;
4887pub const InputBind__BIND_IDOVERLAY: InputBind_ = 33;
4888pub const InputBind__BIND_BREAK_LIQUIDS: InputBind_ = 34;
4889pub const InputBind__BIND_LOOK_UP: InputBind_ = 35;
4890pub const InputBind__BIND_LOOK_DOWN: InputBind_ = 36;
4891pub const InputBind__BIND_LOOK_RIGHT: InputBind_ = 37;
4892pub const InputBind__BIND_LOOK_LEFT: InputBind_ = 38;
4893pub const InputBind__BIND_HOTBAR_1: InputBind_ = 39;
4894pub const InputBind__BIND_HOTBAR_2: InputBind_ = 40;
4895pub const InputBind__BIND_HOTBAR_3: InputBind_ = 41;
4896pub const InputBind__BIND_HOTBAR_4: InputBind_ = 42;
4897pub const InputBind__BIND_HOTBAR_5: InputBind_ = 43;
4898pub const InputBind__BIND_HOTBAR_6: InputBind_ = 44;
4899pub const InputBind__BIND_HOTBAR_7: InputBind_ = 45;
4900pub const InputBind__BIND_HOTBAR_8: InputBind_ = 46;
4901pub const InputBind__BIND_HOTBAR_9: InputBind_ = 47;
4902pub const InputBind__BIND_HOTBAR_LEFT: InputBind_ = 48;
4903pub const InputBind__BIND_HOTBAR_RIGHT: InputBind_ = 49;
4904pub const InputBind__BIND_COUNT: InputBind_ = 50;
4905pub type InputBind_ = ::std::os::raw::c_int;
4906pub type InputBind = ::std::os::raw::c_int;
4907#[repr(C)]
4908#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4909pub struct BindMapping_ {
4910    pub button1: cc_uint8,
4911    pub button2: cc_uint8,
4912}
4913#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4914const _: () = {
4915    ["Size of BindMapping_"][::std::mem::size_of::<BindMapping_>() - 2usize];
4916    ["Alignment of BindMapping_"][::std::mem::align_of::<BindMapping_>() - 1usize];
4917    ["Offset of field: BindMapping_::button1"]
4918        [::std::mem::offset_of!(BindMapping_, button1) - 0usize];
4919    ["Offset of field: BindMapping_::button2"]
4920        [::std::mem::offset_of!(BindMapping_, button2) - 1usize];
4921};
4922pub type BindMapping = BindMapping_;
4923#[repr(C)]
4924#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4925pub struct HotkeyData {
4926    pub textIndex: ::std::os::raw::c_int,
4927    pub trigger: cc_uint8,
4928    pub mods: cc_uint8,
4929    pub flags: cc_uint8,
4930}
4931#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4932const _: () = {
4933    ["Size of HotkeyData"][::std::mem::size_of::<HotkeyData>() - 8usize];
4934    ["Alignment of HotkeyData"][::std::mem::align_of::<HotkeyData>() - 4usize];
4935    ["Offset of field: HotkeyData::textIndex"]
4936        [::std::mem::offset_of!(HotkeyData, textIndex) - 0usize];
4937    ["Offset of field: HotkeyData::trigger"][::std::mem::offset_of!(HotkeyData, trigger) - 4usize];
4938    ["Offset of field: HotkeyData::mods"][::std::mem::offset_of!(HotkeyData, mods) - 5usize];
4939    ["Offset of field: HotkeyData::flags"][::std::mem::offset_of!(HotkeyData, flags) - 6usize];
4940};
4941pub const HotkeyModifiers_HOTKEY_MOD_CTRL: HotkeyModifiers = 1;
4942pub const HotkeyModifiers_HOTKEY_MOD_SHIFT: HotkeyModifiers = 2;
4943pub const HotkeyModifiers_HOTKEY_MOD_ALT: HotkeyModifiers = 4;
4944pub type HotkeyModifiers = ::std::os::raw::c_int;
4945pub type BindTriggered = ::std::option::Option<
4946    unsafe extern "C" fn(key: ::std::os::raw::c_int, device: *mut InputDevice) -> cc_bool,
4947>;
4948pub type BindReleased = ::std::option::Option<
4949    unsafe extern "C" fn(key: ::std::os::raw::c_int, device: *mut InputDevice),
4950>;
4951unsafe extern "C" {
4952    pub fn KeyBind_IsPressed(binding: InputBind) -> cc_bool;
4953}
4954#[repr(C)]
4955#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4956pub struct _InventoryData {
4957    pub Table: [BlockID; 81usize],
4958    pub Map: [BlockID; 768usize],
4959    pub SelectedIndex: ::std::os::raw::c_int,
4960    pub Offset: ::std::os::raw::c_int,
4961    pub CanChangeSelected: cc_bool,
4962    pub BlocksPerRow: cc_uint8,
4963}
4964#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4965const _: () = {
4966    ["Size of _InventoryData"][::std::mem::size_of::<_InventoryData>() - 1712usize];
4967    ["Alignment of _InventoryData"][::std::mem::align_of::<_InventoryData>() - 4usize];
4968    ["Offset of field: _InventoryData::Table"]
4969        [::std::mem::offset_of!(_InventoryData, Table) - 0usize];
4970    ["Offset of field: _InventoryData::Map"]
4971        [::std::mem::offset_of!(_InventoryData, Map) - 162usize];
4972    ["Offset of field: _InventoryData::SelectedIndex"]
4973        [::std::mem::offset_of!(_InventoryData, SelectedIndex) - 1700usize];
4974    ["Offset of field: _InventoryData::Offset"]
4975        [::std::mem::offset_of!(_InventoryData, Offset) - 1704usize];
4976    ["Offset of field: _InventoryData::CanChangeSelected"]
4977        [::std::mem::offset_of!(_InventoryData, CanChangeSelected) - 1708usize];
4978    ["Offset of field: _InventoryData::BlocksPerRow"]
4979        [::std::mem::offset_of!(_InventoryData, BlocksPerRow) - 1709usize];
4980};
4981#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
4982    pub static mut Inventory: _InventoryData;
4983}
4984pub type LBackend_DrawHook = ::std::option::Option<unsafe extern "C" fn(ctx: *mut Context2D)>;
4985pub type LScreen_Func = ::std::option::Option<unsafe extern "C" fn(s: *mut LScreen)>;
4986#[repr(C)]
4987#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4988pub struct LScreen {
4989    pub Activated: LScreen_Func,
4990    pub LoadState: LScreen_Func,
4991    pub Deactivated: LScreen_Func,
4992    pub Layout: LScreen_Func,
4993    pub Tick: LScreen_Func,
4994    pub DrawBackground:
4995        ::std::option::Option<unsafe extern "C" fn(s: *mut LScreen, ctx: *mut Context2D)>,
4996    pub KeyDown: ::std::option::Option<
4997        unsafe extern "C" fn(
4998            s: *mut LScreen,
4999            key: ::std::os::raw::c_int,
5000            wasDown: cc_bool,
5001            device: *mut InputDevice,
5002        ),
5003    >,
5004    pub MouseUp:
5005        ::std::option::Option<unsafe extern "C" fn(s: *mut LScreen, idx: ::std::os::raw::c_int)>,
5006    pub MouseWheel: ::std::option::Option<unsafe extern "C" fn(s: *mut LScreen, delta: f32)>,
5007    pub ResetArea: ::std::option::Option<
5008        unsafe extern "C" fn(
5009            ctx: *mut Context2D,
5010            x: ::std::os::raw::c_int,
5011            y: ::std::os::raw::c_int,
5012            width: ::std::os::raw::c_int,
5013            height: ::std::os::raw::c_int,
5014        ),
5015    >,
5016    pub onEnterWidget: *mut LWidget,
5017    pub onEscapeWidget: *mut LWidget,
5018    pub hoveredWidget: *mut LWidget,
5019    pub selectedWidget: *mut LWidget,
5020    pub numWidgets: ::std::os::raw::c_int,
5021    pub maxWidgets: ::std::os::raw::c_short,
5022    pub everShown: cc_bool,
5023    pub widgets: *mut *mut LWidget,
5024    pub title: *const ::std::os::raw::c_char,
5025}
5026#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5027const _: () = {
5028    ["Size of LScreen"][::std::mem::size_of::<LScreen>() - 136usize];
5029    ["Alignment of LScreen"][::std::mem::align_of::<LScreen>() - 8usize];
5030    ["Offset of field: LScreen::Activated"][::std::mem::offset_of!(LScreen, Activated) - 0usize];
5031    ["Offset of field: LScreen::LoadState"][::std::mem::offset_of!(LScreen, LoadState) - 8usize];
5032    ["Offset of field: LScreen::Deactivated"]
5033        [::std::mem::offset_of!(LScreen, Deactivated) - 16usize];
5034    ["Offset of field: LScreen::Layout"][::std::mem::offset_of!(LScreen, Layout) - 24usize];
5035    ["Offset of field: LScreen::Tick"][::std::mem::offset_of!(LScreen, Tick) - 32usize];
5036    ["Offset of field: LScreen::DrawBackground"]
5037        [::std::mem::offset_of!(LScreen, DrawBackground) - 40usize];
5038    ["Offset of field: LScreen::KeyDown"][::std::mem::offset_of!(LScreen, KeyDown) - 48usize];
5039    ["Offset of field: LScreen::MouseUp"][::std::mem::offset_of!(LScreen, MouseUp) - 56usize];
5040    ["Offset of field: LScreen::MouseWheel"][::std::mem::offset_of!(LScreen, MouseWheel) - 64usize];
5041    ["Offset of field: LScreen::ResetArea"][::std::mem::offset_of!(LScreen, ResetArea) - 72usize];
5042    ["Offset of field: LScreen::onEnterWidget"]
5043        [::std::mem::offset_of!(LScreen, onEnterWidget) - 80usize];
5044    ["Offset of field: LScreen::onEscapeWidget"]
5045        [::std::mem::offset_of!(LScreen, onEscapeWidget) - 88usize];
5046    ["Offset of field: LScreen::hoveredWidget"]
5047        [::std::mem::offset_of!(LScreen, hoveredWidget) - 96usize];
5048    ["Offset of field: LScreen::selectedWidget"]
5049        [::std::mem::offset_of!(LScreen, selectedWidget) - 104usize];
5050    ["Offset of field: LScreen::numWidgets"]
5051        [::std::mem::offset_of!(LScreen, numWidgets) - 112usize];
5052    ["Offset of field: LScreen::maxWidgets"]
5053        [::std::mem::offset_of!(LScreen, maxWidgets) - 116usize];
5054    ["Offset of field: LScreen::everShown"][::std::mem::offset_of!(LScreen, everShown) - 118usize];
5055    ["Offset of field: LScreen::widgets"][::std::mem::offset_of!(LScreen, widgets) - 120usize];
5056    ["Offset of field: LScreen::title"][::std::mem::offset_of!(LScreen, title) - 128usize];
5057};
5058pub type JsonOnValue =
5059    ::std::option::Option<unsafe extern "C" fn(ctx: *mut JsonContext, v: *const cc_string)>;
5060pub type JsonOnNew = ::std::option::Option<unsafe extern "C" fn(ctx: *mut JsonContext)>;
5061#[repr(C)]
5062#[derive(Debug, Hash, PartialEq, Eq)]
5063pub struct JsonContext {
5064    pub cur: *mut ::std::os::raw::c_char,
5065    pub left: ::std::os::raw::c_int,
5066    pub failed: cc_bool,
5067    pub curKey: cc_string,
5068    pub depth: ::std::os::raw::c_int,
5069    pub OnNewArray: JsonOnNew,
5070    pub OnNewObject: JsonOnNew,
5071    pub OnValue: JsonOnValue,
5072    pub _tmp: cc_string,
5073    pub _tmpBuffer: [::std::os::raw::c_char; 64usize],
5074}
5075#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5076const _: () = {
5077    ["Size of JsonContext"][::std::mem::size_of::<JsonContext>() - 144usize];
5078    ["Alignment of JsonContext"][::std::mem::align_of::<JsonContext>() - 8usize];
5079    ["Offset of field: JsonContext::cur"][::std::mem::offset_of!(JsonContext, cur) - 0usize];
5080    ["Offset of field: JsonContext::left"][::std::mem::offset_of!(JsonContext, left) - 8usize];
5081    ["Offset of field: JsonContext::failed"][::std::mem::offset_of!(JsonContext, failed) - 12usize];
5082    ["Offset of field: JsonContext::curKey"][::std::mem::offset_of!(JsonContext, curKey) - 16usize];
5083    ["Offset of field: JsonContext::depth"][::std::mem::offset_of!(JsonContext, depth) - 32usize];
5084    ["Offset of field: JsonContext::OnNewArray"]
5085        [::std::mem::offset_of!(JsonContext, OnNewArray) - 40usize];
5086    ["Offset of field: JsonContext::OnNewObject"]
5087        [::std::mem::offset_of!(JsonContext, OnNewObject) - 48usize];
5088    ["Offset of field: JsonContext::OnValue"]
5089        [::std::mem::offset_of!(JsonContext, OnValue) - 56usize];
5090    ["Offset of field: JsonContext::_tmp"][::std::mem::offset_of!(JsonContext, _tmp) - 64usize];
5091    ["Offset of field: JsonContext::_tmpBuffer"]
5092        [::std::mem::offset_of!(JsonContext, _tmpBuffer) - 80usize];
5093};
5094#[repr(C)]
5095#[derive(Debug, Hash, PartialEq, Eq)]
5096pub struct ServerInfo {
5097    pub hash: cc_string,
5098    pub name: cc_string,
5099    pub ip: cc_string,
5100    pub mppass: cc_string,
5101    pub software: cc_string,
5102    pub players: ::std::os::raw::c_int,
5103    pub maxPlayers: ::std::os::raw::c_int,
5104    pub port: ::std::os::raw::c_int,
5105    pub uptime: ::std::os::raw::c_int,
5106    pub featured: cc_bool,
5107    pub country: [::std::os::raw::c_char; 2usize],
5108    pub _order: ::std::os::raw::c_int,
5109    pub _hashBuffer: [::std::os::raw::c_char; 32usize],
5110    pub _nameBuffer: [::std::os::raw::c_char; 64usize],
5111    pub _ipBuffer: [::std::os::raw::c_char; 16usize],
5112    pub _mppassBuffer: [::std::os::raw::c_char; 64usize],
5113    pub _softBuffer: [::std::os::raw::c_char; 64usize],
5114}
5115#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5116const _: () = {
5117    ["Size of ServerInfo"][::std::mem::size_of::<ServerInfo>() - 344usize];
5118    ["Alignment of ServerInfo"][::std::mem::align_of::<ServerInfo>() - 8usize];
5119    ["Offset of field: ServerInfo::hash"][::std::mem::offset_of!(ServerInfo, hash) - 0usize];
5120    ["Offset of field: ServerInfo::name"][::std::mem::offset_of!(ServerInfo, name) - 16usize];
5121    ["Offset of field: ServerInfo::ip"][::std::mem::offset_of!(ServerInfo, ip) - 32usize];
5122    ["Offset of field: ServerInfo::mppass"][::std::mem::offset_of!(ServerInfo, mppass) - 48usize];
5123    ["Offset of field: ServerInfo::software"]
5124        [::std::mem::offset_of!(ServerInfo, software) - 64usize];
5125    ["Offset of field: ServerInfo::players"][::std::mem::offset_of!(ServerInfo, players) - 80usize];
5126    ["Offset of field: ServerInfo::maxPlayers"]
5127        [::std::mem::offset_of!(ServerInfo, maxPlayers) - 84usize];
5128    ["Offset of field: ServerInfo::port"][::std::mem::offset_of!(ServerInfo, port) - 88usize];
5129    ["Offset of field: ServerInfo::uptime"][::std::mem::offset_of!(ServerInfo, uptime) - 92usize];
5130    ["Offset of field: ServerInfo::featured"]
5131        [::std::mem::offset_of!(ServerInfo, featured) - 96usize];
5132    ["Offset of field: ServerInfo::country"][::std::mem::offset_of!(ServerInfo, country) - 97usize];
5133    ["Offset of field: ServerInfo::_order"][::std::mem::offset_of!(ServerInfo, _order) - 100usize];
5134    ["Offset of field: ServerInfo::_hashBuffer"]
5135        [::std::mem::offset_of!(ServerInfo, _hashBuffer) - 104usize];
5136    ["Offset of field: ServerInfo::_nameBuffer"]
5137        [::std::mem::offset_of!(ServerInfo, _nameBuffer) - 136usize];
5138    ["Offset of field: ServerInfo::_ipBuffer"]
5139        [::std::mem::offset_of!(ServerInfo, _ipBuffer) - 200usize];
5140    ["Offset of field: ServerInfo::_mppassBuffer"]
5141        [::std::mem::offset_of!(ServerInfo, _mppassBuffer) - 216usize];
5142    ["Offset of field: ServerInfo::_softBuffer"]
5143        [::std::mem::offset_of!(ServerInfo, _softBuffer) - 280usize];
5144};
5145#[repr(C)]
5146#[derive(Debug, Hash, PartialEq, Eq)]
5147pub struct Flag {
5148    pub bmp: Bitmap,
5149    pub country: [::std::os::raw::c_char; 2usize],
5150    pub meta: *mut ::std::os::raw::c_void,
5151}
5152#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5153const _: () = {
5154    ["Size of Flag"][::std::mem::size_of::<Flag>() - 32usize];
5155    ["Alignment of Flag"][::std::mem::align_of::<Flag>() - 8usize];
5156    ["Offset of field: Flag::bmp"][::std::mem::offset_of!(Flag, bmp) - 0usize];
5157    ["Offset of field: Flag::country"][::std::mem::offset_of!(Flag, country) - 16usize];
5158    ["Offset of field: Flag::meta"][::std::mem::offset_of!(Flag, meta) - 24usize];
5159};
5160#[repr(C)]
5161#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5162pub struct LWebTask {
5163    pub completed: cc_bool,
5164    pub working: cc_bool,
5165    pub success: cc_bool,
5166    pub reqID: ::std::os::raw::c_int,
5167    pub Handle: ::std::option::Option<unsafe extern "C" fn(data: *mut cc_uint8, len: cc_uint32)>,
5168}
5169#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5170const _: () = {
5171    ["Size of LWebTask"][::std::mem::size_of::<LWebTask>() - 16usize];
5172    ["Alignment of LWebTask"][::std::mem::align_of::<LWebTask>() - 8usize];
5173    ["Offset of field: LWebTask::completed"][::std::mem::offset_of!(LWebTask, completed) - 0usize];
5174    ["Offset of field: LWebTask::working"][::std::mem::offset_of!(LWebTask, working) - 1usize];
5175    ["Offset of field: LWebTask::success"][::std::mem::offset_of!(LWebTask, success) - 2usize];
5176    ["Offset of field: LWebTask::reqID"][::std::mem::offset_of!(LWebTask, reqID) - 4usize];
5177    ["Offset of field: LWebTask::Handle"][::std::mem::offset_of!(LWebTask, Handle) - 8usize];
5178};
5179pub type LWebTask_ErrorCallback =
5180    ::std::option::Option<unsafe extern "C" fn(req: *mut HttpRequest)>;
5181#[repr(C)]
5182#[derive(Debug, Hash, PartialEq, Eq)]
5183pub struct GetTokenTaskData {
5184    pub Base: LWebTask,
5185    pub token: cc_string,
5186    pub username: cc_string,
5187    pub error: cc_bool,
5188}
5189#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5190const _: () = {
5191    ["Size of GetTokenTaskData"][::std::mem::size_of::<GetTokenTaskData>() - 56usize];
5192    ["Alignment of GetTokenTaskData"][::std::mem::align_of::<GetTokenTaskData>() - 8usize];
5193    ["Offset of field: GetTokenTaskData::Base"]
5194        [::std::mem::offset_of!(GetTokenTaskData, Base) - 0usize];
5195    ["Offset of field: GetTokenTaskData::token"]
5196        [::std::mem::offset_of!(GetTokenTaskData, token) - 16usize];
5197    ["Offset of field: GetTokenTaskData::username"]
5198        [::std::mem::offset_of!(GetTokenTaskData, username) - 32usize];
5199    ["Offset of field: GetTokenTaskData::error"]
5200        [::std::mem::offset_of!(GetTokenTaskData, error) - 48usize];
5201};
5202#[repr(C)]
5203#[derive(Debug, Hash, PartialEq, Eq)]
5204pub struct SignInTaskData {
5205    pub Base: LWebTask,
5206    pub username: cc_string,
5207    pub error: *const ::std::os::raw::c_char,
5208    pub needMFA: cc_bool,
5209}
5210#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5211const _: () = {
5212    ["Size of SignInTaskData"][::std::mem::size_of::<SignInTaskData>() - 48usize];
5213    ["Alignment of SignInTaskData"][::std::mem::align_of::<SignInTaskData>() - 8usize];
5214    ["Offset of field: SignInTaskData::Base"]
5215        [::std::mem::offset_of!(SignInTaskData, Base) - 0usize];
5216    ["Offset of field: SignInTaskData::username"]
5217        [::std::mem::offset_of!(SignInTaskData, username) - 16usize];
5218    ["Offset of field: SignInTaskData::error"]
5219        [::std::mem::offset_of!(SignInTaskData, error) - 32usize];
5220    ["Offset of field: SignInTaskData::needMFA"]
5221        [::std::mem::offset_of!(SignInTaskData, needMFA) - 40usize];
5222};
5223#[repr(C)]
5224#[derive(Debug, Hash, PartialEq, Eq)]
5225pub struct FetchServerData {
5226    pub Base: LWebTask,
5227    pub server: ServerInfo,
5228}
5229#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5230const _: () = {
5231    ["Size of FetchServerData"][::std::mem::size_of::<FetchServerData>() - 360usize];
5232    ["Alignment of FetchServerData"][::std::mem::align_of::<FetchServerData>() - 8usize];
5233    ["Offset of field: FetchServerData::Base"]
5234        [::std::mem::offset_of!(FetchServerData, Base) - 0usize];
5235    ["Offset of field: FetchServerData::server"]
5236        [::std::mem::offset_of!(FetchServerData, server) - 16usize];
5237};
5238#[repr(C)]
5239#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5240pub struct FetchServersData {
5241    pub Base: LWebTask,
5242    pub servers: *mut ServerInfo,
5243    pub orders: *mut cc_uint16,
5244    pub numServers: ::std::os::raw::c_int,
5245}
5246#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5247const _: () = {
5248    ["Size of FetchServersData"][::std::mem::size_of::<FetchServersData>() - 40usize];
5249    ["Alignment of FetchServersData"][::std::mem::align_of::<FetchServersData>() - 8usize];
5250    ["Offset of field: FetchServersData::Base"]
5251        [::std::mem::offset_of!(FetchServersData, Base) - 0usize];
5252    ["Offset of field: FetchServersData::servers"]
5253        [::std::mem::offset_of!(FetchServersData, servers) - 16usize];
5254    ["Offset of field: FetchServersData::orders"]
5255        [::std::mem::offset_of!(FetchServersData, orders) - 24usize];
5256    ["Offset of field: FetchServersData::numServers"]
5257        [::std::mem::offset_of!(FetchServersData, numServers) - 32usize];
5258};
5259#[repr(C)]
5260#[derive(Debug, Hash, PartialEq, Eq)]
5261pub struct CheckUpdateData {
5262    pub Base: LWebTask,
5263    pub devTimestamp: cc_uint64,
5264    pub relTimestamp: cc_uint64,
5265    pub latestRelease: cc_string,
5266}
5267#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5268const _: () = {
5269    ["Size of CheckUpdateData"][::std::mem::size_of::<CheckUpdateData>() - 48usize];
5270    ["Alignment of CheckUpdateData"][::std::mem::align_of::<CheckUpdateData>() - 8usize];
5271    ["Offset of field: CheckUpdateData::Base"]
5272        [::std::mem::offset_of!(CheckUpdateData, Base) - 0usize];
5273    ["Offset of field: CheckUpdateData::devTimestamp"]
5274        [::std::mem::offset_of!(CheckUpdateData, devTimestamp) - 16usize];
5275    ["Offset of field: CheckUpdateData::relTimestamp"]
5276        [::std::mem::offset_of!(CheckUpdateData, relTimestamp) - 24usize];
5277    ["Offset of field: CheckUpdateData::latestRelease"]
5278        [::std::mem::offset_of!(CheckUpdateData, latestRelease) - 32usize];
5279};
5280#[repr(C)]
5281#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5282pub struct FetchUpdateData {
5283    pub Base: LWebTask,
5284    pub timestamp: cc_uint64,
5285}
5286#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5287const _: () = {
5288    ["Size of FetchUpdateData"][::std::mem::size_of::<FetchUpdateData>() - 24usize];
5289    ["Alignment of FetchUpdateData"][::std::mem::align_of::<FetchUpdateData>() - 8usize];
5290    ["Offset of field: FetchUpdateData::Base"]
5291        [::std::mem::offset_of!(FetchUpdateData, Base) - 0usize];
5292    ["Offset of field: FetchUpdateData::timestamp"]
5293        [::std::mem::offset_of!(FetchUpdateData, timestamp) - 16usize];
5294};
5295#[repr(C)]
5296#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5297pub struct FetchFlagsData {
5298    pub Base: LWebTask,
5299    pub count: ::std::os::raw::c_int,
5300}
5301#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5302const _: () = {
5303    ["Size of FetchFlagsData"][::std::mem::size_of::<FetchFlagsData>() - 24usize];
5304    ["Alignment of FetchFlagsData"][::std::mem::align_of::<FetchFlagsData>() - 8usize];
5305    ["Offset of field: FetchFlagsData::Base"]
5306        [::std::mem::offset_of!(FetchFlagsData, Base) - 0usize];
5307    ["Offset of field: FetchFlagsData::count"]
5308        [::std::mem::offset_of!(FetchFlagsData, count) - 16usize];
5309};
5310pub const LWIDGET_TYPE_LWIDGET_BUTTON: LWIDGET_TYPE = 0;
5311pub const LWIDGET_TYPE_LWIDGET_CHECKBOX: LWIDGET_TYPE = 1;
5312pub const LWIDGET_TYPE_LWIDGET_INPUT: LWIDGET_TYPE = 2;
5313pub const LWIDGET_TYPE_LWIDGET_LABEL: LWIDGET_TYPE = 3;
5314pub const LWIDGET_TYPE_LWIDGET_LINE: LWIDGET_TYPE = 4;
5315pub const LWIDGET_TYPE_LWIDGET_SLIDER: LWIDGET_TYPE = 5;
5316pub const LWIDGET_TYPE_LWIDGET_TABLE: LWIDGET_TYPE = 6;
5317pub type LWIDGET_TYPE = ::std::os::raw::c_int;
5318#[repr(C)]
5319#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5320pub struct LLayout {
5321    pub type_: ::std::os::raw::c_short,
5322    pub offset: ::std::os::raw::c_short,
5323}
5324#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5325const _: () = {
5326    ["Size of LLayout"][::std::mem::size_of::<LLayout>() - 4usize];
5327    ["Alignment of LLayout"][::std::mem::align_of::<LLayout>() - 2usize];
5328    ["Offset of field: LLayout::type_"][::std::mem::offset_of!(LLayout, type_) - 0usize];
5329    ["Offset of field: LLayout::offset"][::std::mem::offset_of!(LLayout, offset) - 2usize];
5330};
5331#[repr(C)]
5332#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5333pub struct LWidgetVTABLE {
5334    pub Draw: ::std::option::Option<unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void)>,
5335    pub Tick: ::std::option::Option<unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void)>,
5336    pub KeyDown: ::std::option::Option<
5337        unsafe extern "C" fn(
5338            widget: *mut ::std::os::raw::c_void,
5339            key: ::std::os::raw::c_int,
5340            wasDown: cc_bool,
5341            device: *mut InputDevice,
5342        ) -> cc_bool,
5343    >,
5344    pub KeyPress: ::std::option::Option<
5345        unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void, c: ::std::os::raw::c_char),
5346    >,
5347    pub MouseMove: ::std::option::Option<
5348        unsafe extern "C" fn(
5349            widget: *mut ::std::os::raw::c_void,
5350            idx: ::std::os::raw::c_int,
5351            wasOver: cc_bool,
5352        ),
5353    >,
5354    pub MouseLeft: ::std::option::Option<unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void)>,
5355    pub OnSelect: ::std::option::Option<
5356        unsafe extern "C" fn(
5357            widget: *mut ::std::os::raw::c_void,
5358            idx: ::std::os::raw::c_int,
5359            wasSelected: cc_bool,
5360        ),
5361    >,
5362    pub OnUnselect: ::std::option::Option<
5363        unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void, idx: ::std::os::raw::c_int),
5364    >,
5365    pub MouseWheel: ::std::option::Option<
5366        unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void, delta: f32),
5367    >,
5368    pub TextChanged: ::std::option::Option<
5369        unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void, str_: *const cc_string),
5370    >,
5371}
5372#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5373const _: () = {
5374    ["Size of LWidgetVTABLE"][::std::mem::size_of::<LWidgetVTABLE>() - 80usize];
5375    ["Alignment of LWidgetVTABLE"][::std::mem::align_of::<LWidgetVTABLE>() - 8usize];
5376    ["Offset of field: LWidgetVTABLE::Draw"][::std::mem::offset_of!(LWidgetVTABLE, Draw) - 0usize];
5377    ["Offset of field: LWidgetVTABLE::Tick"][::std::mem::offset_of!(LWidgetVTABLE, Tick) - 8usize];
5378    ["Offset of field: LWidgetVTABLE::KeyDown"]
5379        [::std::mem::offset_of!(LWidgetVTABLE, KeyDown) - 16usize];
5380    ["Offset of field: LWidgetVTABLE::KeyPress"]
5381        [::std::mem::offset_of!(LWidgetVTABLE, KeyPress) - 24usize];
5382    ["Offset of field: LWidgetVTABLE::MouseMove"]
5383        [::std::mem::offset_of!(LWidgetVTABLE, MouseMove) - 32usize];
5384    ["Offset of field: LWidgetVTABLE::MouseLeft"]
5385        [::std::mem::offset_of!(LWidgetVTABLE, MouseLeft) - 40usize];
5386    ["Offset of field: LWidgetVTABLE::OnSelect"]
5387        [::std::mem::offset_of!(LWidgetVTABLE, OnSelect) - 48usize];
5388    ["Offset of field: LWidgetVTABLE::OnUnselect"]
5389        [::std::mem::offset_of!(LWidgetVTABLE, OnUnselect) - 56usize];
5390    ["Offset of field: LWidgetVTABLE::MouseWheel"]
5391        [::std::mem::offset_of!(LWidgetVTABLE, MouseWheel) - 64usize];
5392    ["Offset of field: LWidgetVTABLE::TextChanged"]
5393        [::std::mem::offset_of!(LWidgetVTABLE, TextChanged) - 72usize];
5394};
5395pub type LWidgetFunc =
5396    ::std::option::Option<unsafe extern "C" fn(widget: *mut ::std::os::raw::c_void)>;
5397#[repr(C)]
5398#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5399pub struct LWidget {
5400    pub VTABLE: *const LWidgetVTABLE,
5401    pub x: ::std::os::raw::c_int,
5402    pub y: ::std::os::raw::c_int,
5403    pub width: ::std::os::raw::c_int,
5404    pub height: ::std::os::raw::c_int,
5405    pub hovered: cc_bool,
5406    pub selected: cc_bool,
5407    pub autoSelectable: cc_bool,
5408    pub dirty: cc_bool,
5409    pub opaque: cc_bool,
5410    pub type_: cc_uint8,
5411    pub skipsEnter: cc_bool,
5412    pub OnClick: LWidgetFunc,
5413    pub OnHover: LWidgetFunc,
5414    pub OnUnhover: LWidgetFunc,
5415    pub last: Rect2D,
5416    pub meta: *mut ::std::os::raw::c_void,
5417    pub layouts: *const LLayout,
5418}
5419#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5420const _: () = {
5421    ["Size of LWidget"][::std::mem::size_of::<LWidget>() - 88usize];
5422    ["Alignment of LWidget"][::std::mem::align_of::<LWidget>() - 8usize];
5423    ["Offset of field: LWidget::VTABLE"][::std::mem::offset_of!(LWidget, VTABLE) - 0usize];
5424    ["Offset of field: LWidget::x"][::std::mem::offset_of!(LWidget, x) - 8usize];
5425    ["Offset of field: LWidget::y"][::std::mem::offset_of!(LWidget, y) - 12usize];
5426    ["Offset of field: LWidget::width"][::std::mem::offset_of!(LWidget, width) - 16usize];
5427    ["Offset of field: LWidget::height"][::std::mem::offset_of!(LWidget, height) - 20usize];
5428    ["Offset of field: LWidget::hovered"][::std::mem::offset_of!(LWidget, hovered) - 24usize];
5429    ["Offset of field: LWidget::selected"][::std::mem::offset_of!(LWidget, selected) - 25usize];
5430    ["Offset of field: LWidget::autoSelectable"]
5431        [::std::mem::offset_of!(LWidget, autoSelectable) - 26usize];
5432    ["Offset of field: LWidget::dirty"][::std::mem::offset_of!(LWidget, dirty) - 27usize];
5433    ["Offset of field: LWidget::opaque"][::std::mem::offset_of!(LWidget, opaque) - 28usize];
5434    ["Offset of field: LWidget::type_"][::std::mem::offset_of!(LWidget, type_) - 29usize];
5435    ["Offset of field: LWidget::skipsEnter"][::std::mem::offset_of!(LWidget, skipsEnter) - 30usize];
5436    ["Offset of field: LWidget::OnClick"][::std::mem::offset_of!(LWidget, OnClick) - 32usize];
5437    ["Offset of field: LWidget::OnHover"][::std::mem::offset_of!(LWidget, OnHover) - 40usize];
5438    ["Offset of field: LWidget::OnUnhover"][::std::mem::offset_of!(LWidget, OnUnhover) - 48usize];
5439    ["Offset of field: LWidget::last"][::std::mem::offset_of!(LWidget, last) - 56usize];
5440    ["Offset of field: LWidget::meta"][::std::mem::offset_of!(LWidget, meta) - 72usize];
5441    ["Offset of field: LWidget::layouts"][::std::mem::offset_of!(LWidget, layouts) - 80usize];
5442};
5443#[repr(C)]
5444#[derive(Debug, Hash, PartialEq, Eq)]
5445pub struct LButton {
5446    pub VTABLE: *const LWidgetVTABLE,
5447    pub x: ::std::os::raw::c_int,
5448    pub y: ::std::os::raw::c_int,
5449    pub width: ::std::os::raw::c_int,
5450    pub height: ::std::os::raw::c_int,
5451    pub hovered: cc_bool,
5452    pub selected: cc_bool,
5453    pub autoSelectable: cc_bool,
5454    pub dirty: cc_bool,
5455    pub opaque: cc_bool,
5456    pub type_: cc_uint8,
5457    pub skipsEnter: cc_bool,
5458    pub OnClick: LWidgetFunc,
5459    pub OnHover: LWidgetFunc,
5460    pub OnUnhover: LWidgetFunc,
5461    pub last: Rect2D,
5462    pub meta: *mut ::std::os::raw::c_void,
5463    pub layouts: *const LLayout,
5464    pub text: cc_string,
5465    pub _textWidth: ::std::os::raw::c_int,
5466    pub _textHeight: ::std::os::raw::c_int,
5467}
5468#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5469const _: () = {
5470    ["Size of LButton"][::std::mem::size_of::<LButton>() - 112usize];
5471    ["Alignment of LButton"][::std::mem::align_of::<LButton>() - 8usize];
5472    ["Offset of field: LButton::VTABLE"][::std::mem::offset_of!(LButton, VTABLE) - 0usize];
5473    ["Offset of field: LButton::x"][::std::mem::offset_of!(LButton, x) - 8usize];
5474    ["Offset of field: LButton::y"][::std::mem::offset_of!(LButton, y) - 12usize];
5475    ["Offset of field: LButton::width"][::std::mem::offset_of!(LButton, width) - 16usize];
5476    ["Offset of field: LButton::height"][::std::mem::offset_of!(LButton, height) - 20usize];
5477    ["Offset of field: LButton::hovered"][::std::mem::offset_of!(LButton, hovered) - 24usize];
5478    ["Offset of field: LButton::selected"][::std::mem::offset_of!(LButton, selected) - 25usize];
5479    ["Offset of field: LButton::autoSelectable"]
5480        [::std::mem::offset_of!(LButton, autoSelectable) - 26usize];
5481    ["Offset of field: LButton::dirty"][::std::mem::offset_of!(LButton, dirty) - 27usize];
5482    ["Offset of field: LButton::opaque"][::std::mem::offset_of!(LButton, opaque) - 28usize];
5483    ["Offset of field: LButton::type_"][::std::mem::offset_of!(LButton, type_) - 29usize];
5484    ["Offset of field: LButton::skipsEnter"][::std::mem::offset_of!(LButton, skipsEnter) - 30usize];
5485    ["Offset of field: LButton::OnClick"][::std::mem::offset_of!(LButton, OnClick) - 32usize];
5486    ["Offset of field: LButton::OnHover"][::std::mem::offset_of!(LButton, OnHover) - 40usize];
5487    ["Offset of field: LButton::OnUnhover"][::std::mem::offset_of!(LButton, OnUnhover) - 48usize];
5488    ["Offset of field: LButton::last"][::std::mem::offset_of!(LButton, last) - 56usize];
5489    ["Offset of field: LButton::meta"][::std::mem::offset_of!(LButton, meta) - 72usize];
5490    ["Offset of field: LButton::layouts"][::std::mem::offset_of!(LButton, layouts) - 80usize];
5491    ["Offset of field: LButton::text"][::std::mem::offset_of!(LButton, text) - 88usize];
5492    ["Offset of field: LButton::_textWidth"]
5493        [::std::mem::offset_of!(LButton, _textWidth) - 104usize];
5494    ["Offset of field: LButton::_textHeight"]
5495        [::std::mem::offset_of!(LButton, _textHeight) - 108usize];
5496};
5497pub type LCheckboxChanged = ::std::option::Option<unsafe extern "C" fn(cb: *mut LCheckbox)>;
5498#[repr(C)]
5499#[derive(Debug, Hash, PartialEq, Eq)]
5500pub struct LCheckbox {
5501    pub VTABLE: *const LWidgetVTABLE,
5502    pub x: ::std::os::raw::c_int,
5503    pub y: ::std::os::raw::c_int,
5504    pub width: ::std::os::raw::c_int,
5505    pub height: ::std::os::raw::c_int,
5506    pub hovered: cc_bool,
5507    pub selected: cc_bool,
5508    pub autoSelectable: cc_bool,
5509    pub dirty: cc_bool,
5510    pub opaque: cc_bool,
5511    pub type_: cc_uint8,
5512    pub skipsEnter: cc_bool,
5513    pub OnClick: LWidgetFunc,
5514    pub OnHover: LWidgetFunc,
5515    pub OnUnhover: LWidgetFunc,
5516    pub last: Rect2D,
5517    pub meta: *mut ::std::os::raw::c_void,
5518    pub layouts: *const LLayout,
5519    pub value: cc_bool,
5520    pub text: cc_string,
5521    pub ValueChanged: LCheckboxChanged,
5522}
5523#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5524const _: () = {
5525    ["Size of LCheckbox"][::std::mem::size_of::<LCheckbox>() - 120usize];
5526    ["Alignment of LCheckbox"][::std::mem::align_of::<LCheckbox>() - 8usize];
5527    ["Offset of field: LCheckbox::VTABLE"][::std::mem::offset_of!(LCheckbox, VTABLE) - 0usize];
5528    ["Offset of field: LCheckbox::x"][::std::mem::offset_of!(LCheckbox, x) - 8usize];
5529    ["Offset of field: LCheckbox::y"][::std::mem::offset_of!(LCheckbox, y) - 12usize];
5530    ["Offset of field: LCheckbox::width"][::std::mem::offset_of!(LCheckbox, width) - 16usize];
5531    ["Offset of field: LCheckbox::height"][::std::mem::offset_of!(LCheckbox, height) - 20usize];
5532    ["Offset of field: LCheckbox::hovered"][::std::mem::offset_of!(LCheckbox, hovered) - 24usize];
5533    ["Offset of field: LCheckbox::selected"][::std::mem::offset_of!(LCheckbox, selected) - 25usize];
5534    ["Offset of field: LCheckbox::autoSelectable"]
5535        [::std::mem::offset_of!(LCheckbox, autoSelectable) - 26usize];
5536    ["Offset of field: LCheckbox::dirty"][::std::mem::offset_of!(LCheckbox, dirty) - 27usize];
5537    ["Offset of field: LCheckbox::opaque"][::std::mem::offset_of!(LCheckbox, opaque) - 28usize];
5538    ["Offset of field: LCheckbox::type_"][::std::mem::offset_of!(LCheckbox, type_) - 29usize];
5539    ["Offset of field: LCheckbox::skipsEnter"]
5540        [::std::mem::offset_of!(LCheckbox, skipsEnter) - 30usize];
5541    ["Offset of field: LCheckbox::OnClick"][::std::mem::offset_of!(LCheckbox, OnClick) - 32usize];
5542    ["Offset of field: LCheckbox::OnHover"][::std::mem::offset_of!(LCheckbox, OnHover) - 40usize];
5543    ["Offset of field: LCheckbox::OnUnhover"]
5544        [::std::mem::offset_of!(LCheckbox, OnUnhover) - 48usize];
5545    ["Offset of field: LCheckbox::last"][::std::mem::offset_of!(LCheckbox, last) - 56usize];
5546    ["Offset of field: LCheckbox::meta"][::std::mem::offset_of!(LCheckbox, meta) - 72usize];
5547    ["Offset of field: LCheckbox::layouts"][::std::mem::offset_of!(LCheckbox, layouts) - 80usize];
5548    ["Offset of field: LCheckbox::value"][::std::mem::offset_of!(LCheckbox, value) - 88usize];
5549    ["Offset of field: LCheckbox::text"][::std::mem::offset_of!(LCheckbox, text) - 96usize];
5550    ["Offset of field: LCheckbox::ValueChanged"]
5551        [::std::mem::offset_of!(LCheckbox, ValueChanged) - 112usize];
5552};
5553#[repr(C)]
5554#[derive(Debug, Hash, PartialEq, Eq)]
5555pub struct LInput {
5556    pub VTABLE: *const LWidgetVTABLE,
5557    pub x: ::std::os::raw::c_int,
5558    pub y: ::std::os::raw::c_int,
5559    pub width: ::std::os::raw::c_int,
5560    pub height: ::std::os::raw::c_int,
5561    pub hovered: cc_bool,
5562    pub selected: cc_bool,
5563    pub autoSelectable: cc_bool,
5564    pub dirty: cc_bool,
5565    pub opaque: cc_bool,
5566    pub type_: cc_uint8,
5567    pub skipsEnter: cc_bool,
5568    pub OnClick: LWidgetFunc,
5569    pub OnHover: LWidgetFunc,
5570    pub OnUnhover: LWidgetFunc,
5571    pub last: Rect2D,
5572    pub meta: *mut ::std::os::raw::c_void,
5573    pub layouts: *const LLayout,
5574    pub minWidth: ::std::os::raw::c_int,
5575    pub hintText: *const ::std::os::raw::c_char,
5576    pub inputType: cc_uint8,
5577    pub caretShow: cc_bool,
5578    pub ClipboardFilter: ::std::option::Option<unsafe extern "C" fn(str_: *mut cc_string)>,
5579    pub TextChanged: ::std::option::Option<unsafe extern "C" fn(w: *mut LInput)>,
5580    pub caretPos: ::std::os::raw::c_int,
5581    pub text: cc_string,
5582    pub _textHeight: ::std::os::raw::c_int,
5583    pub _textBuffer: [::std::os::raw::c_char; 128usize],
5584}
5585#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5586const _: () = {
5587    ["Size of LInput"][::std::mem::size_of::<LInput>() - 288usize];
5588    ["Alignment of LInput"][::std::mem::align_of::<LInput>() - 8usize];
5589    ["Offset of field: LInput::VTABLE"][::std::mem::offset_of!(LInput, VTABLE) - 0usize];
5590    ["Offset of field: LInput::x"][::std::mem::offset_of!(LInput, x) - 8usize];
5591    ["Offset of field: LInput::y"][::std::mem::offset_of!(LInput, y) - 12usize];
5592    ["Offset of field: LInput::width"][::std::mem::offset_of!(LInput, width) - 16usize];
5593    ["Offset of field: LInput::height"][::std::mem::offset_of!(LInput, height) - 20usize];
5594    ["Offset of field: LInput::hovered"][::std::mem::offset_of!(LInput, hovered) - 24usize];
5595    ["Offset of field: LInput::selected"][::std::mem::offset_of!(LInput, selected) - 25usize];
5596    ["Offset of field: LInput::autoSelectable"]
5597        [::std::mem::offset_of!(LInput, autoSelectable) - 26usize];
5598    ["Offset of field: LInput::dirty"][::std::mem::offset_of!(LInput, dirty) - 27usize];
5599    ["Offset of field: LInput::opaque"][::std::mem::offset_of!(LInput, opaque) - 28usize];
5600    ["Offset of field: LInput::type_"][::std::mem::offset_of!(LInput, type_) - 29usize];
5601    ["Offset of field: LInput::skipsEnter"][::std::mem::offset_of!(LInput, skipsEnter) - 30usize];
5602    ["Offset of field: LInput::OnClick"][::std::mem::offset_of!(LInput, OnClick) - 32usize];
5603    ["Offset of field: LInput::OnHover"][::std::mem::offset_of!(LInput, OnHover) - 40usize];
5604    ["Offset of field: LInput::OnUnhover"][::std::mem::offset_of!(LInput, OnUnhover) - 48usize];
5605    ["Offset of field: LInput::last"][::std::mem::offset_of!(LInput, last) - 56usize];
5606    ["Offset of field: LInput::meta"][::std::mem::offset_of!(LInput, meta) - 72usize];
5607    ["Offset of field: LInput::layouts"][::std::mem::offset_of!(LInput, layouts) - 80usize];
5608    ["Offset of field: LInput::minWidth"][::std::mem::offset_of!(LInput, minWidth) - 88usize];
5609    ["Offset of field: LInput::hintText"][::std::mem::offset_of!(LInput, hintText) - 96usize];
5610    ["Offset of field: LInput::inputType"][::std::mem::offset_of!(LInput, inputType) - 104usize];
5611    ["Offset of field: LInput::caretShow"][::std::mem::offset_of!(LInput, caretShow) - 105usize];
5612    ["Offset of field: LInput::ClipboardFilter"]
5613        [::std::mem::offset_of!(LInput, ClipboardFilter) - 112usize];
5614    ["Offset of field: LInput::TextChanged"]
5615        [::std::mem::offset_of!(LInput, TextChanged) - 120usize];
5616    ["Offset of field: LInput::caretPos"][::std::mem::offset_of!(LInput, caretPos) - 128usize];
5617    ["Offset of field: LInput::text"][::std::mem::offset_of!(LInput, text) - 136usize];
5618    ["Offset of field: LInput::_textHeight"]
5619        [::std::mem::offset_of!(LInput, _textHeight) - 152usize];
5620    ["Offset of field: LInput::_textBuffer"]
5621        [::std::mem::offset_of!(LInput, _textBuffer) - 156usize];
5622};
5623#[repr(C)]
5624#[derive(Debug, Hash, PartialEq, Eq)]
5625pub struct LLabel {
5626    pub VTABLE: *const LWidgetVTABLE,
5627    pub x: ::std::os::raw::c_int,
5628    pub y: ::std::os::raw::c_int,
5629    pub width: ::std::os::raw::c_int,
5630    pub height: ::std::os::raw::c_int,
5631    pub hovered: cc_bool,
5632    pub selected: cc_bool,
5633    pub autoSelectable: cc_bool,
5634    pub dirty: cc_bool,
5635    pub opaque: cc_bool,
5636    pub type_: cc_uint8,
5637    pub skipsEnter: cc_bool,
5638    pub OnClick: LWidgetFunc,
5639    pub OnHover: LWidgetFunc,
5640    pub OnUnhover: LWidgetFunc,
5641    pub last: Rect2D,
5642    pub meta: *mut ::std::os::raw::c_void,
5643    pub layouts: *const LLayout,
5644    pub small: cc_bool,
5645    pub text: cc_string,
5646    pub _textBuffer: [::std::os::raw::c_char; 64usize],
5647}
5648#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5649const _: () = {
5650    ["Size of LLabel"][::std::mem::size_of::<LLabel>() - 176usize];
5651    ["Alignment of LLabel"][::std::mem::align_of::<LLabel>() - 8usize];
5652    ["Offset of field: LLabel::VTABLE"][::std::mem::offset_of!(LLabel, VTABLE) - 0usize];
5653    ["Offset of field: LLabel::x"][::std::mem::offset_of!(LLabel, x) - 8usize];
5654    ["Offset of field: LLabel::y"][::std::mem::offset_of!(LLabel, y) - 12usize];
5655    ["Offset of field: LLabel::width"][::std::mem::offset_of!(LLabel, width) - 16usize];
5656    ["Offset of field: LLabel::height"][::std::mem::offset_of!(LLabel, height) - 20usize];
5657    ["Offset of field: LLabel::hovered"][::std::mem::offset_of!(LLabel, hovered) - 24usize];
5658    ["Offset of field: LLabel::selected"][::std::mem::offset_of!(LLabel, selected) - 25usize];
5659    ["Offset of field: LLabel::autoSelectable"]
5660        [::std::mem::offset_of!(LLabel, autoSelectable) - 26usize];
5661    ["Offset of field: LLabel::dirty"][::std::mem::offset_of!(LLabel, dirty) - 27usize];
5662    ["Offset of field: LLabel::opaque"][::std::mem::offset_of!(LLabel, opaque) - 28usize];
5663    ["Offset of field: LLabel::type_"][::std::mem::offset_of!(LLabel, type_) - 29usize];
5664    ["Offset of field: LLabel::skipsEnter"][::std::mem::offset_of!(LLabel, skipsEnter) - 30usize];
5665    ["Offset of field: LLabel::OnClick"][::std::mem::offset_of!(LLabel, OnClick) - 32usize];
5666    ["Offset of field: LLabel::OnHover"][::std::mem::offset_of!(LLabel, OnHover) - 40usize];
5667    ["Offset of field: LLabel::OnUnhover"][::std::mem::offset_of!(LLabel, OnUnhover) - 48usize];
5668    ["Offset of field: LLabel::last"][::std::mem::offset_of!(LLabel, last) - 56usize];
5669    ["Offset of field: LLabel::meta"][::std::mem::offset_of!(LLabel, meta) - 72usize];
5670    ["Offset of field: LLabel::layouts"][::std::mem::offset_of!(LLabel, layouts) - 80usize];
5671    ["Offset of field: LLabel::small"][::std::mem::offset_of!(LLabel, small) - 88usize];
5672    ["Offset of field: LLabel::text"][::std::mem::offset_of!(LLabel, text) - 96usize];
5673    ["Offset of field: LLabel::_textBuffer"]
5674        [::std::mem::offset_of!(LLabel, _textBuffer) - 112usize];
5675};
5676#[repr(C)]
5677#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5678pub struct LLine {
5679    pub VTABLE: *const LWidgetVTABLE,
5680    pub x: ::std::os::raw::c_int,
5681    pub y: ::std::os::raw::c_int,
5682    pub width: ::std::os::raw::c_int,
5683    pub height: ::std::os::raw::c_int,
5684    pub hovered: cc_bool,
5685    pub selected: cc_bool,
5686    pub autoSelectable: cc_bool,
5687    pub dirty: cc_bool,
5688    pub opaque: cc_bool,
5689    pub type_: cc_uint8,
5690    pub skipsEnter: cc_bool,
5691    pub OnClick: LWidgetFunc,
5692    pub OnHover: LWidgetFunc,
5693    pub OnUnhover: LWidgetFunc,
5694    pub last: Rect2D,
5695    pub meta: *mut ::std::os::raw::c_void,
5696    pub layouts: *const LLayout,
5697    pub _width: ::std::os::raw::c_int,
5698}
5699#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5700const _: () = {
5701    ["Size of LLine"][::std::mem::size_of::<LLine>() - 96usize];
5702    ["Alignment of LLine"][::std::mem::align_of::<LLine>() - 8usize];
5703    ["Offset of field: LLine::VTABLE"][::std::mem::offset_of!(LLine, VTABLE) - 0usize];
5704    ["Offset of field: LLine::x"][::std::mem::offset_of!(LLine, x) - 8usize];
5705    ["Offset of field: LLine::y"][::std::mem::offset_of!(LLine, y) - 12usize];
5706    ["Offset of field: LLine::width"][::std::mem::offset_of!(LLine, width) - 16usize];
5707    ["Offset of field: LLine::height"][::std::mem::offset_of!(LLine, height) - 20usize];
5708    ["Offset of field: LLine::hovered"][::std::mem::offset_of!(LLine, hovered) - 24usize];
5709    ["Offset of field: LLine::selected"][::std::mem::offset_of!(LLine, selected) - 25usize];
5710    ["Offset of field: LLine::autoSelectable"]
5711        [::std::mem::offset_of!(LLine, autoSelectable) - 26usize];
5712    ["Offset of field: LLine::dirty"][::std::mem::offset_of!(LLine, dirty) - 27usize];
5713    ["Offset of field: LLine::opaque"][::std::mem::offset_of!(LLine, opaque) - 28usize];
5714    ["Offset of field: LLine::type_"][::std::mem::offset_of!(LLine, type_) - 29usize];
5715    ["Offset of field: LLine::skipsEnter"][::std::mem::offset_of!(LLine, skipsEnter) - 30usize];
5716    ["Offset of field: LLine::OnClick"][::std::mem::offset_of!(LLine, OnClick) - 32usize];
5717    ["Offset of field: LLine::OnHover"][::std::mem::offset_of!(LLine, OnHover) - 40usize];
5718    ["Offset of field: LLine::OnUnhover"][::std::mem::offset_of!(LLine, OnUnhover) - 48usize];
5719    ["Offset of field: LLine::last"][::std::mem::offset_of!(LLine, last) - 56usize];
5720    ["Offset of field: LLine::meta"][::std::mem::offset_of!(LLine, meta) - 72usize];
5721    ["Offset of field: LLine::layouts"][::std::mem::offset_of!(LLine, layouts) - 80usize];
5722    ["Offset of field: LLine::_width"][::std::mem::offset_of!(LLine, _width) - 88usize];
5723};
5724#[repr(C)]
5725#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5726pub struct LSlider {
5727    pub VTABLE: *const LWidgetVTABLE,
5728    pub x: ::std::os::raw::c_int,
5729    pub y: ::std::os::raw::c_int,
5730    pub width: ::std::os::raw::c_int,
5731    pub height: ::std::os::raw::c_int,
5732    pub hovered: cc_bool,
5733    pub selected: cc_bool,
5734    pub autoSelectable: cc_bool,
5735    pub dirty: cc_bool,
5736    pub opaque: cc_bool,
5737    pub type_: cc_uint8,
5738    pub skipsEnter: cc_bool,
5739    pub OnClick: LWidgetFunc,
5740    pub OnHover: LWidgetFunc,
5741    pub OnUnhover: LWidgetFunc,
5742    pub last: Rect2D,
5743    pub meta: *mut ::std::os::raw::c_void,
5744    pub layouts: *const LLayout,
5745    pub value: ::std::os::raw::c_int,
5746    pub _width: ::std::os::raw::c_int,
5747    pub _height: ::std::os::raw::c_int,
5748    pub color: BitmapCol,
5749}
5750#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5751const _: () = {
5752    ["Size of LSlider"][::std::mem::size_of::<LSlider>() - 104usize];
5753    ["Alignment of LSlider"][::std::mem::align_of::<LSlider>() - 8usize];
5754    ["Offset of field: LSlider::VTABLE"][::std::mem::offset_of!(LSlider, VTABLE) - 0usize];
5755    ["Offset of field: LSlider::x"][::std::mem::offset_of!(LSlider, x) - 8usize];
5756    ["Offset of field: LSlider::y"][::std::mem::offset_of!(LSlider, y) - 12usize];
5757    ["Offset of field: LSlider::width"][::std::mem::offset_of!(LSlider, width) - 16usize];
5758    ["Offset of field: LSlider::height"][::std::mem::offset_of!(LSlider, height) - 20usize];
5759    ["Offset of field: LSlider::hovered"][::std::mem::offset_of!(LSlider, hovered) - 24usize];
5760    ["Offset of field: LSlider::selected"][::std::mem::offset_of!(LSlider, selected) - 25usize];
5761    ["Offset of field: LSlider::autoSelectable"]
5762        [::std::mem::offset_of!(LSlider, autoSelectable) - 26usize];
5763    ["Offset of field: LSlider::dirty"][::std::mem::offset_of!(LSlider, dirty) - 27usize];
5764    ["Offset of field: LSlider::opaque"][::std::mem::offset_of!(LSlider, opaque) - 28usize];
5765    ["Offset of field: LSlider::type_"][::std::mem::offset_of!(LSlider, type_) - 29usize];
5766    ["Offset of field: LSlider::skipsEnter"][::std::mem::offset_of!(LSlider, skipsEnter) - 30usize];
5767    ["Offset of field: LSlider::OnClick"][::std::mem::offset_of!(LSlider, OnClick) - 32usize];
5768    ["Offset of field: LSlider::OnHover"][::std::mem::offset_of!(LSlider, OnHover) - 40usize];
5769    ["Offset of field: LSlider::OnUnhover"][::std::mem::offset_of!(LSlider, OnUnhover) - 48usize];
5770    ["Offset of field: LSlider::last"][::std::mem::offset_of!(LSlider, last) - 56usize];
5771    ["Offset of field: LSlider::meta"][::std::mem::offset_of!(LSlider, meta) - 72usize];
5772    ["Offset of field: LSlider::layouts"][::std::mem::offset_of!(LSlider, layouts) - 80usize];
5773    ["Offset of field: LSlider::value"][::std::mem::offset_of!(LSlider, value) - 88usize];
5774    ["Offset of field: LSlider::_width"][::std::mem::offset_of!(LSlider, _width) - 92usize];
5775    ["Offset of field: LSlider::_height"][::std::mem::offset_of!(LSlider, _height) - 96usize];
5776    ["Offset of field: LSlider::color"][::std::mem::offset_of!(LSlider, color) - 100usize];
5777};
5778#[repr(C)]
5779#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5780pub struct LTableColumn {
5781    pub name: *const ::std::os::raw::c_char,
5782    pub width: ::std::os::raw::c_int,
5783    pub DrawRow: ::std::option::Option<
5784        unsafe extern "C" fn(
5785            row: *mut ServerInfo,
5786            args: *mut DrawTextArgs,
5787            cell: *mut LTableCell,
5788            ctx: *mut Context2D,
5789        ),
5790    >,
5791    pub SortOrder: ::std::option::Option<
5792        unsafe extern "C" fn(a: *const ServerInfo, b: *const ServerInfo) -> ::std::os::raw::c_int,
5793    >,
5794    pub hasGridline: cc_bool,
5795    pub draggable: cc_bool,
5796    pub sortable: cc_bool,
5797    pub invertSort: cc_bool,
5798}
5799#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5800const _: () = {
5801    ["Size of LTableColumn"][::std::mem::size_of::<LTableColumn>() - 40usize];
5802    ["Alignment of LTableColumn"][::std::mem::align_of::<LTableColumn>() - 8usize];
5803    ["Offset of field: LTableColumn::name"][::std::mem::offset_of!(LTableColumn, name) - 0usize];
5804    ["Offset of field: LTableColumn::width"][::std::mem::offset_of!(LTableColumn, width) - 8usize];
5805    ["Offset of field: LTableColumn::DrawRow"]
5806        [::std::mem::offset_of!(LTableColumn, DrawRow) - 16usize];
5807    ["Offset of field: LTableColumn::SortOrder"]
5808        [::std::mem::offset_of!(LTableColumn, SortOrder) - 24usize];
5809    ["Offset of field: LTableColumn::hasGridline"]
5810        [::std::mem::offset_of!(LTableColumn, hasGridline) - 32usize];
5811    ["Offset of field: LTableColumn::draggable"]
5812        [::std::mem::offset_of!(LTableColumn, draggable) - 33usize];
5813    ["Offset of field: LTableColumn::sortable"]
5814        [::std::mem::offset_of!(LTableColumn, sortable) - 34usize];
5815    ["Offset of field: LTableColumn::invertSort"]
5816        [::std::mem::offset_of!(LTableColumn, invertSort) - 35usize];
5817};
5818#[repr(C)]
5819#[derive(Debug, Copy, Clone, PartialEq)]
5820pub struct LTable {
5821    pub VTABLE: *const LWidgetVTABLE,
5822    pub x: ::std::os::raw::c_int,
5823    pub y: ::std::os::raw::c_int,
5824    pub width: ::std::os::raw::c_int,
5825    pub height: ::std::os::raw::c_int,
5826    pub hovered: cc_bool,
5827    pub selected: cc_bool,
5828    pub autoSelectable: cc_bool,
5829    pub dirty: cc_bool,
5830    pub opaque: cc_bool,
5831    pub type_: cc_uint8,
5832    pub skipsEnter: cc_bool,
5833    pub OnClick: LWidgetFunc,
5834    pub OnHover: LWidgetFunc,
5835    pub OnUnhover: LWidgetFunc,
5836    pub last: Rect2D,
5837    pub meta: *mut ::std::os::raw::c_void,
5838    pub layouts: *const LLayout,
5839    pub columns: *mut LTableColumn,
5840    pub numColumns: ::std::os::raw::c_int,
5841    pub rowsBegY: ::std::os::raw::c_int,
5842    pub rowsEndY: ::std::os::raw::c_int,
5843    pub rowHeight: ::std::os::raw::c_int,
5844    pub hdrHeight: ::std::os::raw::c_int,
5845    pub visibleRows: ::std::os::raw::c_int,
5846    pub rowsCount: ::std::os::raw::c_int,
5847    pub topRow: ::std::os::raw::c_int,
5848    pub selectedHash: *mut cc_string,
5849    pub filter: *mut cc_string,
5850    pub OnSelectedChanged: ::std::option::Option<unsafe extern "C" fn()>,
5851    pub draggingColumn: ::std::os::raw::c_int,
5852    pub dragXStart: ::std::os::raw::c_int,
5853    pub draggingScrollbar: cc_bool,
5854    pub dragYOffset: ::std::os::raw::c_int,
5855    pub _wheelAcc: f32,
5856    pub _lastRow: ::std::os::raw::c_int,
5857    pub _lastClick: cc_uint64,
5858    pub sortingCol: ::std::os::raw::c_int,
5859}
5860#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5861const _: () = {
5862    ["Size of LTable"][::std::mem::size_of::<LTable>() - 192usize];
5863    ["Alignment of LTable"][::std::mem::align_of::<LTable>() - 8usize];
5864    ["Offset of field: LTable::VTABLE"][::std::mem::offset_of!(LTable, VTABLE) - 0usize];
5865    ["Offset of field: LTable::x"][::std::mem::offset_of!(LTable, x) - 8usize];
5866    ["Offset of field: LTable::y"][::std::mem::offset_of!(LTable, y) - 12usize];
5867    ["Offset of field: LTable::width"][::std::mem::offset_of!(LTable, width) - 16usize];
5868    ["Offset of field: LTable::height"][::std::mem::offset_of!(LTable, height) - 20usize];
5869    ["Offset of field: LTable::hovered"][::std::mem::offset_of!(LTable, hovered) - 24usize];
5870    ["Offset of field: LTable::selected"][::std::mem::offset_of!(LTable, selected) - 25usize];
5871    ["Offset of field: LTable::autoSelectable"]
5872        [::std::mem::offset_of!(LTable, autoSelectable) - 26usize];
5873    ["Offset of field: LTable::dirty"][::std::mem::offset_of!(LTable, dirty) - 27usize];
5874    ["Offset of field: LTable::opaque"][::std::mem::offset_of!(LTable, opaque) - 28usize];
5875    ["Offset of field: LTable::type_"][::std::mem::offset_of!(LTable, type_) - 29usize];
5876    ["Offset of field: LTable::skipsEnter"][::std::mem::offset_of!(LTable, skipsEnter) - 30usize];
5877    ["Offset of field: LTable::OnClick"][::std::mem::offset_of!(LTable, OnClick) - 32usize];
5878    ["Offset of field: LTable::OnHover"][::std::mem::offset_of!(LTable, OnHover) - 40usize];
5879    ["Offset of field: LTable::OnUnhover"][::std::mem::offset_of!(LTable, OnUnhover) - 48usize];
5880    ["Offset of field: LTable::last"][::std::mem::offset_of!(LTable, last) - 56usize];
5881    ["Offset of field: LTable::meta"][::std::mem::offset_of!(LTable, meta) - 72usize];
5882    ["Offset of field: LTable::layouts"][::std::mem::offset_of!(LTable, layouts) - 80usize];
5883    ["Offset of field: LTable::columns"][::std::mem::offset_of!(LTable, columns) - 88usize];
5884    ["Offset of field: LTable::numColumns"][::std::mem::offset_of!(LTable, numColumns) - 96usize];
5885    ["Offset of field: LTable::rowsBegY"][::std::mem::offset_of!(LTable, rowsBegY) - 100usize];
5886    ["Offset of field: LTable::rowsEndY"][::std::mem::offset_of!(LTable, rowsEndY) - 104usize];
5887    ["Offset of field: LTable::rowHeight"][::std::mem::offset_of!(LTable, rowHeight) - 108usize];
5888    ["Offset of field: LTable::hdrHeight"][::std::mem::offset_of!(LTable, hdrHeight) - 112usize];
5889    ["Offset of field: LTable::visibleRows"]
5890        [::std::mem::offset_of!(LTable, visibleRows) - 116usize];
5891    ["Offset of field: LTable::rowsCount"][::std::mem::offset_of!(LTable, rowsCount) - 120usize];
5892    ["Offset of field: LTable::topRow"][::std::mem::offset_of!(LTable, topRow) - 124usize];
5893    ["Offset of field: LTable::selectedHash"]
5894        [::std::mem::offset_of!(LTable, selectedHash) - 128usize];
5895    ["Offset of field: LTable::filter"][::std::mem::offset_of!(LTable, filter) - 136usize];
5896    ["Offset of field: LTable::OnSelectedChanged"]
5897        [::std::mem::offset_of!(LTable, OnSelectedChanged) - 144usize];
5898    ["Offset of field: LTable::draggingColumn"]
5899        [::std::mem::offset_of!(LTable, draggingColumn) - 152usize];
5900    ["Offset of field: LTable::dragXStart"][::std::mem::offset_of!(LTable, dragXStart) - 156usize];
5901    ["Offset of field: LTable::draggingScrollbar"]
5902        [::std::mem::offset_of!(LTable, draggingScrollbar) - 160usize];
5903    ["Offset of field: LTable::dragYOffset"]
5904        [::std::mem::offset_of!(LTable, dragYOffset) - 164usize];
5905    ["Offset of field: LTable::_wheelAcc"][::std::mem::offset_of!(LTable, _wheelAcc) - 168usize];
5906    ["Offset of field: LTable::_lastRow"][::std::mem::offset_of!(LTable, _lastRow) - 172usize];
5907    ["Offset of field: LTable::_lastClick"][::std::mem::offset_of!(LTable, _lastClick) - 176usize];
5908    ["Offset of field: LTable::sortingCol"][::std::mem::offset_of!(LTable, sortingCol) - 184usize];
5909};
5910#[repr(C)]
5911#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5912pub struct LTableCell {
5913    pub table: *mut LTable,
5914    pub x: ::std::os::raw::c_int,
5915    pub y: ::std::os::raw::c_int,
5916    pub width: ::std::os::raw::c_int,
5917}
5918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5919const _: () = {
5920    ["Size of LTableCell"][::std::mem::size_of::<LTableCell>() - 24usize];
5921    ["Alignment of LTableCell"][::std::mem::align_of::<LTableCell>() - 8usize];
5922    ["Offset of field: LTableCell::table"][::std::mem::offset_of!(LTableCell, table) - 0usize];
5923    ["Offset of field: LTableCell::x"][::std::mem::offset_of!(LTableCell, x) - 8usize];
5924    ["Offset of field: LTableCell::y"][::std::mem::offset_of!(LTableCell, y) - 12usize];
5925    ["Offset of field: LTableCell::width"][::std::mem::offset_of!(LTableCell, width) - 16usize];
5926};
5927#[repr(C)]
5928#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5929pub struct LauncherTheme {
5930    pub ClassicBackground: cc_bool,
5931    pub BackgroundColor: BitmapCol,
5932    pub ButtonBorderColor: BitmapCol,
5933    pub ButtonForeActiveColor: BitmapCol,
5934    pub ButtonForeColor: BitmapCol,
5935    pub ButtonHighlightColor: BitmapCol,
5936}
5937#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5938const _: () = {
5939    ["Size of LauncherTheme"][::std::mem::size_of::<LauncherTheme>() - 24usize];
5940    ["Alignment of LauncherTheme"][::std::mem::align_of::<LauncherTheme>() - 4usize];
5941    ["Offset of field: LauncherTheme::ClassicBackground"]
5942        [::std::mem::offset_of!(LauncherTheme, ClassicBackground) - 0usize];
5943    ["Offset of field: LauncherTheme::BackgroundColor"]
5944        [::std::mem::offset_of!(LauncherTheme, BackgroundColor) - 4usize];
5945    ["Offset of field: LauncherTheme::ButtonBorderColor"]
5946        [::std::mem::offset_of!(LauncherTheme, ButtonBorderColor) - 8usize];
5947    ["Offset of field: LauncherTheme::ButtonForeActiveColor"]
5948        [::std::mem::offset_of!(LauncherTheme, ButtonForeActiveColor) - 12usize];
5949    ["Offset of field: LauncherTheme::ButtonForeColor"]
5950        [::std::mem::offset_of!(LauncherTheme, ButtonForeColor) - 16usize];
5951    ["Offset of field: LauncherTheme::ButtonHighlightColor"]
5952        [::std::mem::offset_of!(LauncherTheme, ButtonHighlightColor) - 20usize];
5953};
5954pub const LightingMode_LIGHTING_MODE_CLASSIC: LightingMode = 0;
5955pub const LightingMode_LIGHTING_MODE_FANCY: LightingMode = 1;
5956pub const LightingMode_LIGHTING_MODE_COUNT: LightingMode = 2;
5957pub type LightingMode = ::std::os::raw::c_int;
5958#[repr(C)]
5959#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5960pub struct _Lighting {
5961    pub FreeState: ::std::option::Option<unsafe extern "C" fn()>,
5962    pub AllocState: ::std::option::Option<unsafe extern "C" fn()>,
5963    pub LightHint: ::std::option::Option<
5964        unsafe extern "C" fn(
5965            startX: ::std::os::raw::c_int,
5966            startY: ::std::os::raw::c_int,
5967            startZ: ::std::os::raw::c_int,
5968        ),
5969    >,
5970    pub OnBlockChanged: ::std::option::Option<
5971        unsafe extern "C" fn(
5972            x: ::std::os::raw::c_int,
5973            y: ::std::os::raw::c_int,
5974            z: ::std::os::raw::c_int,
5975            oldBlock: BlockID,
5976            newBlock: BlockID,
5977        ),
5978    >,
5979    pub Refresh: ::std::option::Option<unsafe extern "C" fn()>,
5980    pub IsLit: ::std::option::Option<
5981        unsafe extern "C" fn(
5982            x: ::std::os::raw::c_int,
5983            y: ::std::os::raw::c_int,
5984            z: ::std::os::raw::c_int,
5985        ) -> cc_bool,
5986    >,
5987    pub Color: ::std::option::Option<
5988        unsafe extern "C" fn(
5989            x: ::std::os::raw::c_int,
5990            y: ::std::os::raw::c_int,
5991            z: ::std::os::raw::c_int,
5992        ) -> PackedCol,
5993    >,
5994    pub Color_XSide: ::std::option::Option<
5995        unsafe extern "C" fn(
5996            x: ::std::os::raw::c_int,
5997            y: ::std::os::raw::c_int,
5998            z: ::std::os::raw::c_int,
5999        ) -> PackedCol,
6000    >,
6001    pub IsLit_Fast: ::std::option::Option<
6002        unsafe extern "C" fn(
6003            x: ::std::os::raw::c_int,
6004            y: ::std::os::raw::c_int,
6005            z: ::std::os::raw::c_int,
6006        ) -> cc_bool,
6007    >,
6008    pub Color_Sprite_Fast: ::std::option::Option<
6009        unsafe extern "C" fn(
6010            x: ::std::os::raw::c_int,
6011            y: ::std::os::raw::c_int,
6012            z: ::std::os::raw::c_int,
6013        ) -> PackedCol,
6014    >,
6015    pub Color_YMax_Fast: ::std::option::Option<
6016        unsafe extern "C" fn(
6017            x: ::std::os::raw::c_int,
6018            y: ::std::os::raw::c_int,
6019            z: ::std::os::raw::c_int,
6020        ) -> PackedCol,
6021    >,
6022    pub Color_YMin_Fast: ::std::option::Option<
6023        unsafe extern "C" fn(
6024            x: ::std::os::raw::c_int,
6025            y: ::std::os::raw::c_int,
6026            z: ::std::os::raw::c_int,
6027        ) -> PackedCol,
6028    >,
6029    pub Color_XSide_Fast: ::std::option::Option<
6030        unsafe extern "C" fn(
6031            x: ::std::os::raw::c_int,
6032            y: ::std::os::raw::c_int,
6033            z: ::std::os::raw::c_int,
6034        ) -> PackedCol,
6035    >,
6036    pub Color_ZSide_Fast: ::std::option::Option<
6037        unsafe extern "C" fn(
6038            x: ::std::os::raw::c_int,
6039            y: ::std::os::raw::c_int,
6040            z: ::std::os::raw::c_int,
6041        ) -> PackedCol,
6042    >,
6043}
6044#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6045const _: () = {
6046    ["Size of _Lighting"][::std::mem::size_of::<_Lighting>() - 112usize];
6047    ["Alignment of _Lighting"][::std::mem::align_of::<_Lighting>() - 8usize];
6048    ["Offset of field: _Lighting::FreeState"]
6049        [::std::mem::offset_of!(_Lighting, FreeState) - 0usize];
6050    ["Offset of field: _Lighting::AllocState"]
6051        [::std::mem::offset_of!(_Lighting, AllocState) - 8usize];
6052    ["Offset of field: _Lighting::LightHint"]
6053        [::std::mem::offset_of!(_Lighting, LightHint) - 16usize];
6054    ["Offset of field: _Lighting::OnBlockChanged"]
6055        [::std::mem::offset_of!(_Lighting, OnBlockChanged) - 24usize];
6056    ["Offset of field: _Lighting::Refresh"][::std::mem::offset_of!(_Lighting, Refresh) - 32usize];
6057    ["Offset of field: _Lighting::IsLit"][::std::mem::offset_of!(_Lighting, IsLit) - 40usize];
6058    ["Offset of field: _Lighting::Color"][::std::mem::offset_of!(_Lighting, Color) - 48usize];
6059    ["Offset of field: _Lighting::Color_XSide"]
6060        [::std::mem::offset_of!(_Lighting, Color_XSide) - 56usize];
6061    ["Offset of field: _Lighting::IsLit_Fast"]
6062        [::std::mem::offset_of!(_Lighting, IsLit_Fast) - 64usize];
6063    ["Offset of field: _Lighting::Color_Sprite_Fast"]
6064        [::std::mem::offset_of!(_Lighting, Color_Sprite_Fast) - 72usize];
6065    ["Offset of field: _Lighting::Color_YMax_Fast"]
6066        [::std::mem::offset_of!(_Lighting, Color_YMax_Fast) - 80usize];
6067    ["Offset of field: _Lighting::Color_YMin_Fast"]
6068        [::std::mem::offset_of!(_Lighting, Color_YMin_Fast) - 88usize];
6069    ["Offset of field: _Lighting::Color_XSide_Fast"]
6070        [::std::mem::offset_of!(_Lighting, Color_XSide_Fast) - 96usize];
6071    ["Offset of field: _Lighting::Color_ZSide_Fast"]
6072        [::std::mem::offset_of!(_Lighting, Color_ZSide_Fast) - 104usize];
6073};
6074#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
6075    pub static mut Lighting: _Lighting;
6076}
6077pub type Logger_DescribeError =
6078    ::std::option::Option<unsafe extern "C" fn(res: cc_result, dst: *mut cc_string) -> cc_bool>;
6079pub type Logger_DoWarn = ::std::option::Option<unsafe extern "C" fn(msg: *const cc_string)>;
6080#[repr(C)]
6081#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6082pub struct ChunkPartInfo {
6083    pub offset: ::std::os::raw::c_int,
6084    pub spriteCount: ::std::os::raw::c_int,
6085    pub counts: [cc_uint16; 6usize],
6086}
6087#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6088const _: () = {
6089    ["Size of ChunkPartInfo"][::std::mem::size_of::<ChunkPartInfo>() - 20usize];
6090    ["Alignment of ChunkPartInfo"][::std::mem::align_of::<ChunkPartInfo>() - 4usize];
6091    ["Offset of field: ChunkPartInfo::offset"]
6092        [::std::mem::offset_of!(ChunkPartInfo, offset) - 0usize];
6093    ["Offset of field: ChunkPartInfo::spriteCount"]
6094        [::std::mem::offset_of!(ChunkPartInfo, spriteCount) - 4usize];
6095    ["Offset of field: ChunkPartInfo::counts"]
6096        [::std::mem::offset_of!(ChunkPartInfo, counts) - 8usize];
6097};
6098#[repr(C)]
6099#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6100pub struct ChunkInfo {
6101    pub centreX: cc_uint16,
6102    pub centreY: cc_uint16,
6103    pub centreZ: cc_uint16,
6104    pub _bitfield_align_1: [u8; 0],
6105    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
6106    pub vb: GfxResourceID,
6107    pub normalParts: *mut ChunkPartInfo,
6108    pub translucentParts: *mut ChunkPartInfo,
6109}
6110#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6111const _: () = {
6112    ["Size of ChunkInfo"][::std::mem::size_of::<ChunkInfo>() - 32usize];
6113    ["Alignment of ChunkInfo"][::std::mem::align_of::<ChunkInfo>() - 8usize];
6114    ["Offset of field: ChunkInfo::centreX"][::std::mem::offset_of!(ChunkInfo, centreX) - 0usize];
6115    ["Offset of field: ChunkInfo::centreY"][::std::mem::offset_of!(ChunkInfo, centreY) - 2usize];
6116    ["Offset of field: ChunkInfo::centreZ"][::std::mem::offset_of!(ChunkInfo, centreZ) - 4usize];
6117    ["Offset of field: ChunkInfo::vb"][::std::mem::offset_of!(ChunkInfo, vb) - 8usize];
6118    ["Offset of field: ChunkInfo::normalParts"]
6119        [::std::mem::offset_of!(ChunkInfo, normalParts) - 16usize];
6120    ["Offset of field: ChunkInfo::translucentParts"]
6121        [::std::mem::offset_of!(ChunkInfo, translucentParts) - 24usize];
6122};
6123impl ChunkInfo {
6124    #[inline]
6125    pub fn visible(&self) -> cc_uint8 {
6126        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
6127    }
6128    #[inline]
6129    pub fn set_visible(&mut self, val: cc_uint8) {
6130        unsafe {
6131            let val: u8 = ::std::mem::transmute(val);
6132            self._bitfield_1.set(0usize, 1u8, val as u64)
6133        }
6134    }
6135    #[inline]
6136    pub unsafe fn visible_raw(this: *const Self) -> cc_uint8 {
6137        unsafe {
6138            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6139                ::std::ptr::addr_of!((*this)._bitfield_1),
6140                0usize,
6141                1u8,
6142            ) as u8)
6143        }
6144    }
6145    #[inline]
6146    pub unsafe fn set_visible_raw(this: *mut Self, val: cc_uint8) {
6147        unsafe {
6148            let val: u8 = ::std::mem::transmute(val);
6149            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6150                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6151                0usize,
6152                1u8,
6153                val as u64,
6154            )
6155        }
6156    }
6157    #[inline]
6158    pub fn empty(&self) -> cc_uint8 {
6159        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
6160    }
6161    #[inline]
6162    pub fn set_empty(&mut self, val: cc_uint8) {
6163        unsafe {
6164            let val: u8 = ::std::mem::transmute(val);
6165            self._bitfield_1.set(1usize, 1u8, val as u64)
6166        }
6167    }
6168    #[inline]
6169    pub unsafe fn empty_raw(this: *const Self) -> cc_uint8 {
6170        unsafe {
6171            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6172                ::std::ptr::addr_of!((*this)._bitfield_1),
6173                1usize,
6174                1u8,
6175            ) as u8)
6176        }
6177    }
6178    #[inline]
6179    pub unsafe fn set_empty_raw(this: *mut Self, val: cc_uint8) {
6180        unsafe {
6181            let val: u8 = ::std::mem::transmute(val);
6182            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6183                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6184                1usize,
6185                1u8,
6186                val as u64,
6187            )
6188        }
6189    }
6190    #[inline]
6191    pub fn dirty(&self) -> cc_uint8 {
6192        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
6193    }
6194    #[inline]
6195    pub fn set_dirty(&mut self, val: cc_uint8) {
6196        unsafe {
6197            let val: u8 = ::std::mem::transmute(val);
6198            self._bitfield_1.set(2usize, 1u8, val as u64)
6199        }
6200    }
6201    #[inline]
6202    pub unsafe fn dirty_raw(this: *const Self) -> cc_uint8 {
6203        unsafe {
6204            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6205                ::std::ptr::addr_of!((*this)._bitfield_1),
6206                2usize,
6207                1u8,
6208            ) as u8)
6209        }
6210    }
6211    #[inline]
6212    pub unsafe fn set_dirty_raw(this: *mut Self, val: cc_uint8) {
6213        unsafe {
6214            let val: u8 = ::std::mem::transmute(val);
6215            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6216                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6217                2usize,
6218                1u8,
6219                val as u64,
6220            )
6221        }
6222    }
6223    #[inline]
6224    pub fn allAir(&self) -> cc_uint8 {
6225        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
6226    }
6227    #[inline]
6228    pub fn set_allAir(&mut self, val: cc_uint8) {
6229        unsafe {
6230            let val: u8 = ::std::mem::transmute(val);
6231            self._bitfield_1.set(3usize, 1u8, val as u64)
6232        }
6233    }
6234    #[inline]
6235    pub unsafe fn allAir_raw(this: *const Self) -> cc_uint8 {
6236        unsafe {
6237            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6238                ::std::ptr::addr_of!((*this)._bitfield_1),
6239                3usize,
6240                1u8,
6241            ) as u8)
6242        }
6243    }
6244    #[inline]
6245    pub unsafe fn set_allAir_raw(this: *mut Self, val: cc_uint8) {
6246        unsafe {
6247            let val: u8 = ::std::mem::transmute(val);
6248            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6249                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6250                3usize,
6251                1u8,
6252                val as u64,
6253            )
6254        }
6255    }
6256    #[inline]
6257    pub fn noData(&self) -> cc_uint8 {
6258        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
6259    }
6260    #[inline]
6261    pub fn set_noData(&mut self, val: cc_uint8) {
6262        unsafe {
6263            let val: u8 = ::std::mem::transmute(val);
6264            self._bitfield_1.set(4usize, 1u8, val as u64)
6265        }
6266    }
6267    #[inline]
6268    pub unsafe fn noData_raw(this: *const Self) -> cc_uint8 {
6269        unsafe {
6270            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6271                ::std::ptr::addr_of!((*this)._bitfield_1),
6272                4usize,
6273                1u8,
6274            ) as u8)
6275        }
6276    }
6277    #[inline]
6278    pub unsafe fn set_noData_raw(this: *mut Self, val: cc_uint8) {
6279        unsafe {
6280            let val: u8 = ::std::mem::transmute(val);
6281            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6282                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6283                4usize,
6284                1u8,
6285                val as u64,
6286            )
6287        }
6288    }
6289    #[inline]
6290    pub fn drawXMin(&self) -> cc_uint8 {
6291        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
6292    }
6293    #[inline]
6294    pub fn set_drawXMin(&mut self, val: cc_uint8) {
6295        unsafe {
6296            let val: u8 = ::std::mem::transmute(val);
6297            self._bitfield_1.set(8usize, 1u8, val as u64)
6298        }
6299    }
6300    #[inline]
6301    pub unsafe fn drawXMin_raw(this: *const Self) -> cc_uint8 {
6302        unsafe {
6303            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6304                ::std::ptr::addr_of!((*this)._bitfield_1),
6305                8usize,
6306                1u8,
6307            ) as u8)
6308        }
6309    }
6310    #[inline]
6311    pub unsafe fn set_drawXMin_raw(this: *mut Self, val: cc_uint8) {
6312        unsafe {
6313            let val: u8 = ::std::mem::transmute(val);
6314            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6315                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6316                8usize,
6317                1u8,
6318                val as u64,
6319            )
6320        }
6321    }
6322    #[inline]
6323    pub fn drawXMax(&self) -> cc_uint8 {
6324        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u8) }
6325    }
6326    #[inline]
6327    pub fn set_drawXMax(&mut self, val: cc_uint8) {
6328        unsafe {
6329            let val: u8 = ::std::mem::transmute(val);
6330            self._bitfield_1.set(9usize, 1u8, val as u64)
6331        }
6332    }
6333    #[inline]
6334    pub unsafe fn drawXMax_raw(this: *const Self) -> cc_uint8 {
6335        unsafe {
6336            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6337                ::std::ptr::addr_of!((*this)._bitfield_1),
6338                9usize,
6339                1u8,
6340            ) as u8)
6341        }
6342    }
6343    #[inline]
6344    pub unsafe fn set_drawXMax_raw(this: *mut Self, val: cc_uint8) {
6345        unsafe {
6346            let val: u8 = ::std::mem::transmute(val);
6347            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6348                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6349                9usize,
6350                1u8,
6351                val as u64,
6352            )
6353        }
6354    }
6355    #[inline]
6356    pub fn drawZMin(&self) -> cc_uint8 {
6357        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u8) }
6358    }
6359    #[inline]
6360    pub fn set_drawZMin(&mut self, val: cc_uint8) {
6361        unsafe {
6362            let val: u8 = ::std::mem::transmute(val);
6363            self._bitfield_1.set(10usize, 1u8, val as u64)
6364        }
6365    }
6366    #[inline]
6367    pub unsafe fn drawZMin_raw(this: *const Self) -> cc_uint8 {
6368        unsafe {
6369            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6370                ::std::ptr::addr_of!((*this)._bitfield_1),
6371                10usize,
6372                1u8,
6373            ) as u8)
6374        }
6375    }
6376    #[inline]
6377    pub unsafe fn set_drawZMin_raw(this: *mut Self, val: cc_uint8) {
6378        unsafe {
6379            let val: u8 = ::std::mem::transmute(val);
6380            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6381                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6382                10usize,
6383                1u8,
6384                val as u64,
6385            )
6386        }
6387    }
6388    #[inline]
6389    pub fn drawZMax(&self) -> cc_uint8 {
6390        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u8) }
6391    }
6392    #[inline]
6393    pub fn set_drawZMax(&mut self, val: cc_uint8) {
6394        unsafe {
6395            let val: u8 = ::std::mem::transmute(val);
6396            self._bitfield_1.set(11usize, 1u8, val as u64)
6397        }
6398    }
6399    #[inline]
6400    pub unsafe fn drawZMax_raw(this: *const Self) -> cc_uint8 {
6401        unsafe {
6402            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6403                ::std::ptr::addr_of!((*this)._bitfield_1),
6404                11usize,
6405                1u8,
6406            ) as u8)
6407        }
6408    }
6409    #[inline]
6410    pub unsafe fn set_drawZMax_raw(this: *mut Self, val: cc_uint8) {
6411        unsafe {
6412            let val: u8 = ::std::mem::transmute(val);
6413            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6414                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6415                11usize,
6416                1u8,
6417                val as u64,
6418            )
6419        }
6420    }
6421    #[inline]
6422    pub fn drawYMin(&self) -> cc_uint8 {
6423        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u8) }
6424    }
6425    #[inline]
6426    pub fn set_drawYMin(&mut self, val: cc_uint8) {
6427        unsafe {
6428            let val: u8 = ::std::mem::transmute(val);
6429            self._bitfield_1.set(12usize, 1u8, val as u64)
6430        }
6431    }
6432    #[inline]
6433    pub unsafe fn drawYMin_raw(this: *const Self) -> cc_uint8 {
6434        unsafe {
6435            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6436                ::std::ptr::addr_of!((*this)._bitfield_1),
6437                12usize,
6438                1u8,
6439            ) as u8)
6440        }
6441    }
6442    #[inline]
6443    pub unsafe fn set_drawYMin_raw(this: *mut Self, val: cc_uint8) {
6444        unsafe {
6445            let val: u8 = ::std::mem::transmute(val);
6446            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6447                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6448                12usize,
6449                1u8,
6450                val as u64,
6451            )
6452        }
6453    }
6454    #[inline]
6455    pub fn drawYMax(&self) -> cc_uint8 {
6456        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u8) }
6457    }
6458    #[inline]
6459    pub fn set_drawYMax(&mut self, val: cc_uint8) {
6460        unsafe {
6461            let val: u8 = ::std::mem::transmute(val);
6462            self._bitfield_1.set(13usize, 1u8, val as u64)
6463        }
6464    }
6465    #[inline]
6466    pub unsafe fn drawYMax_raw(this: *const Self) -> cc_uint8 {
6467        unsafe {
6468            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
6469                ::std::ptr::addr_of!((*this)._bitfield_1),
6470                13usize,
6471                1u8,
6472            ) as u8)
6473        }
6474    }
6475    #[inline]
6476    pub unsafe fn set_drawYMax_raw(this: *mut Self, val: cc_uint8) {
6477        unsafe {
6478            let val: u8 = ::std::mem::transmute(val);
6479            <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
6480                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
6481                13usize,
6482                1u8,
6483                val as u64,
6484            )
6485        }
6486    }
6487    #[inline]
6488    pub fn new_bitfield_1(
6489        visible: cc_uint8,
6490        empty: cc_uint8,
6491        dirty: cc_uint8,
6492        allAir: cc_uint8,
6493        noData: cc_uint8,
6494        drawXMin: cc_uint8,
6495        drawXMax: cc_uint8,
6496        drawZMin: cc_uint8,
6497        drawZMax: cc_uint8,
6498        drawYMin: cc_uint8,
6499        drawYMax: cc_uint8,
6500    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
6501        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
6502        __bindgen_bitfield_unit.set(0usize, 1u8, {
6503            let visible: u8 = unsafe { ::std::mem::transmute(visible) };
6504            visible as u64
6505        });
6506        __bindgen_bitfield_unit.set(1usize, 1u8, {
6507            let empty: u8 = unsafe { ::std::mem::transmute(empty) };
6508            empty as u64
6509        });
6510        __bindgen_bitfield_unit.set(2usize, 1u8, {
6511            let dirty: u8 = unsafe { ::std::mem::transmute(dirty) };
6512            dirty as u64
6513        });
6514        __bindgen_bitfield_unit.set(3usize, 1u8, {
6515            let allAir: u8 = unsafe { ::std::mem::transmute(allAir) };
6516            allAir as u64
6517        });
6518        __bindgen_bitfield_unit.set(4usize, 1u8, {
6519            let noData: u8 = unsafe { ::std::mem::transmute(noData) };
6520            noData as u64
6521        });
6522        __bindgen_bitfield_unit.set(8usize, 1u8, {
6523            let drawXMin: u8 = unsafe { ::std::mem::transmute(drawXMin) };
6524            drawXMin as u64
6525        });
6526        __bindgen_bitfield_unit.set(9usize, 1u8, {
6527            let drawXMax: u8 = unsafe { ::std::mem::transmute(drawXMax) };
6528            drawXMax as u64
6529        });
6530        __bindgen_bitfield_unit.set(10usize, 1u8, {
6531            let drawZMin: u8 = unsafe { ::std::mem::transmute(drawZMin) };
6532            drawZMin as u64
6533        });
6534        __bindgen_bitfield_unit.set(11usize, 1u8, {
6535            let drawZMax: u8 = unsafe { ::std::mem::transmute(drawZMax) };
6536            drawZMax as u64
6537        });
6538        __bindgen_bitfield_unit.set(12usize, 1u8, {
6539            let drawYMin: u8 = unsafe { ::std::mem::transmute(drawYMin) };
6540            drawYMin as u64
6541        });
6542        __bindgen_bitfield_unit.set(13usize, 1u8, {
6543            let drawYMax: u8 = unsafe { ::std::mem::transmute(drawYMax) };
6544            drawYMax as u64
6545        });
6546        __bindgen_bitfield_unit
6547    }
6548}
6549#[repr(C)]
6550#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6551pub struct SimpleButtonDesc {
6552    pub x: ::std::os::raw::c_short,
6553    pub y: ::std::os::raw::c_short,
6554    pub title: *const ::std::os::raw::c_char,
6555    pub onClick: Widget_LeftClick,
6556}
6557#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6558const _: () = {
6559    ["Size of SimpleButtonDesc"][::std::mem::size_of::<SimpleButtonDesc>() - 24usize];
6560    ["Alignment of SimpleButtonDesc"][::std::mem::align_of::<SimpleButtonDesc>() - 8usize];
6561    ["Offset of field: SimpleButtonDesc::x"][::std::mem::offset_of!(SimpleButtonDesc, x) - 0usize];
6562    ["Offset of field: SimpleButtonDesc::y"][::std::mem::offset_of!(SimpleButtonDesc, y) - 2usize];
6563    ["Offset of field: SimpleButtonDesc::title"]
6564        [::std::mem::offset_of!(SimpleButtonDesc, title) - 8usize];
6565    ["Offset of field: SimpleButtonDesc::onClick"]
6566        [::std::mem::offset_of!(SimpleButtonDesc, onClick) - 16usize];
6567};
6568pub type MenuInputDone =
6569    ::std::option::Option<unsafe extern "C" fn(value: *const cc_string, valid: cc_bool)>;
6570pub type Button_GetBool = ::std::option::Option<unsafe extern "C" fn() -> cc_bool>;
6571pub type Button_SetBool = ::std::option::Option<unsafe extern "C" fn(value: cc_bool)>;
6572pub type Button_GetEnum = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
6573pub type Button_SetEnum = ::std::option::Option<unsafe extern "C" fn(value: ::std::os::raw::c_int)>;
6574pub type Button_GetHex = ::std::option::Option<unsafe extern "C" fn() -> PackedCol>;
6575pub type Button_SetHex = ::std::option::Option<unsafe extern "C" fn(value: PackedCol)>;
6576pub type Button_GetInt = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
6577pub type Button_SetInt = ::std::option::Option<unsafe extern "C" fn(value: ::std::os::raw::c_int)>;
6578pub type Button_GetNum = ::std::option::Option<unsafe extern "C" fn(v: *mut cc_string)>;
6579pub type Button_SetNum = ::std::option::Option<unsafe extern "C" fn(v: *const cc_string)>;
6580pub const RotateOrder_ROTATE_ORDER_ZYX: RotateOrder = 0;
6581pub const RotateOrder_ROTATE_ORDER_XZY: RotateOrder = 1;
6582pub const RotateOrder_ROTATE_ORDER_YZX: RotateOrder = 2;
6583pub const RotateOrder_ROTATE_ORDER_XYZ: RotateOrder = 3;
6584pub type RotateOrder = ::std::os::raw::c_int;
6585#[repr(C)]
6586#[derive(Debug, Copy, Clone, PartialEq)]
6587pub struct ModelVertex {
6588    pub x: f32,
6589    pub y: f32,
6590    pub z: f32,
6591    pub u: cc_uint16,
6592    pub v: cc_uint16,
6593}
6594#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6595const _: () = {
6596    ["Size of ModelVertex"][::std::mem::size_of::<ModelVertex>() - 16usize];
6597    ["Alignment of ModelVertex"][::std::mem::align_of::<ModelVertex>() - 4usize];
6598    ["Offset of field: ModelVertex::x"][::std::mem::offset_of!(ModelVertex, x) - 0usize];
6599    ["Offset of field: ModelVertex::y"][::std::mem::offset_of!(ModelVertex, y) - 4usize];
6600    ["Offset of field: ModelVertex::z"][::std::mem::offset_of!(ModelVertex, z) - 8usize];
6601    ["Offset of field: ModelVertex::u"][::std::mem::offset_of!(ModelVertex, u) - 12usize];
6602    ["Offset of field: ModelVertex::v"][::std::mem::offset_of!(ModelVertex, v) - 14usize];
6603};
6604#[repr(C)]
6605#[derive(Debug, Copy, Clone, PartialEq)]
6606pub struct ModelPart {
6607    pub offset: cc_uint16,
6608    pub count: cc_uint16,
6609    pub rotX: f32,
6610    pub rotY: f32,
6611    pub rotZ: f32,
6612}
6613#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6614const _: () = {
6615    ["Size of ModelPart"][::std::mem::size_of::<ModelPart>() - 16usize];
6616    ["Alignment of ModelPart"][::std::mem::align_of::<ModelPart>() - 4usize];
6617    ["Offset of field: ModelPart::offset"][::std::mem::offset_of!(ModelPart, offset) - 0usize];
6618    ["Offset of field: ModelPart::count"][::std::mem::offset_of!(ModelPart, count) - 2usize];
6619    ["Offset of field: ModelPart::rotX"][::std::mem::offset_of!(ModelPart, rotX) - 4usize];
6620    ["Offset of field: ModelPart::rotY"][::std::mem::offset_of!(ModelPart, rotY) - 8usize];
6621    ["Offset of field: ModelPart::rotZ"][::std::mem::offset_of!(ModelPart, rotZ) - 12usize];
6622};
6623#[repr(C)]
6624#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6625pub struct ModelTex {
6626    pub name: *const ::std::os::raw::c_char,
6627    pub skinType: cc_uint8,
6628    pub texID: GfxResourceID,
6629    pub next: *mut ModelTex,
6630}
6631#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6632const _: () = {
6633    ["Size of ModelTex"][::std::mem::size_of::<ModelTex>() - 32usize];
6634    ["Alignment of ModelTex"][::std::mem::align_of::<ModelTex>() - 8usize];
6635    ["Offset of field: ModelTex::name"][::std::mem::offset_of!(ModelTex, name) - 0usize];
6636    ["Offset of field: ModelTex::skinType"][::std::mem::offset_of!(ModelTex, skinType) - 8usize];
6637    ["Offset of field: ModelTex::texID"][::std::mem::offset_of!(ModelTex, texID) - 16usize];
6638    ["Offset of field: ModelTex::next"][::std::mem::offset_of!(ModelTex, next) - 24usize];
6639};
6640#[repr(C)]
6641#[derive(Debug, Copy, Clone, PartialEq)]
6642pub struct Model {
6643    pub name: *const ::std::os::raw::c_char,
6644    pub vertices: *mut ModelVertex,
6645    pub defaultTex: *mut ModelTex,
6646    pub MakeParts: ::std::option::Option<unsafe extern "C" fn()>,
6647    pub Draw: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity)>,
6648    pub GetNameY: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity) -> f32>,
6649    pub GetEyeY: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity) -> f32>,
6650    pub GetCollisionSize: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity)>,
6651    pub GetPickingBounds: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity)>,
6652    pub index: ::std::os::raw::c_int,
6653    pub armX: cc_uint8,
6654    pub armY: cc_uint8,
6655    pub flags: cc_uint8,
6656    pub bobbing: cc_bool,
6657    pub usesSkin: cc_bool,
6658    pub calcHumanAnims: cc_bool,
6659    pub usesHumanSkin: cc_bool,
6660    pub pushes: cc_bool,
6661    pub gravity: f32,
6662    pub drag: Vec3,
6663    pub groundFriction: Vec3,
6664    pub GetTransform:
6665        ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity, pos: Vec3, m: *mut Matrix)>,
6666    pub DrawArm: ::std::option::Option<unsafe extern "C" fn(entity: *mut Entity)>,
6667    pub maxScale: f32,
6668    pub shadowScale: f32,
6669    pub maxVertices: ::std::os::raw::c_int,
6670    pub next: *mut Model,
6671}
6672#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6673const _: () = {
6674    ["Size of Model"][::std::mem::size_of::<Model>() - 152usize];
6675    ["Alignment of Model"][::std::mem::align_of::<Model>() - 8usize];
6676    ["Offset of field: Model::name"][::std::mem::offset_of!(Model, name) - 0usize];
6677    ["Offset of field: Model::vertices"][::std::mem::offset_of!(Model, vertices) - 8usize];
6678    ["Offset of field: Model::defaultTex"][::std::mem::offset_of!(Model, defaultTex) - 16usize];
6679    ["Offset of field: Model::MakeParts"][::std::mem::offset_of!(Model, MakeParts) - 24usize];
6680    ["Offset of field: Model::Draw"][::std::mem::offset_of!(Model, Draw) - 32usize];
6681    ["Offset of field: Model::GetNameY"][::std::mem::offset_of!(Model, GetNameY) - 40usize];
6682    ["Offset of field: Model::GetEyeY"][::std::mem::offset_of!(Model, GetEyeY) - 48usize];
6683    ["Offset of field: Model::GetCollisionSize"]
6684        [::std::mem::offset_of!(Model, GetCollisionSize) - 56usize];
6685    ["Offset of field: Model::GetPickingBounds"]
6686        [::std::mem::offset_of!(Model, GetPickingBounds) - 64usize];
6687    ["Offset of field: Model::index"][::std::mem::offset_of!(Model, index) - 72usize];
6688    ["Offset of field: Model::armX"][::std::mem::offset_of!(Model, armX) - 76usize];
6689    ["Offset of field: Model::armY"][::std::mem::offset_of!(Model, armY) - 77usize];
6690    ["Offset of field: Model::flags"][::std::mem::offset_of!(Model, flags) - 78usize];
6691    ["Offset of field: Model::bobbing"][::std::mem::offset_of!(Model, bobbing) - 79usize];
6692    ["Offset of field: Model::usesSkin"][::std::mem::offset_of!(Model, usesSkin) - 80usize];
6693    ["Offset of field: Model::calcHumanAnims"]
6694        [::std::mem::offset_of!(Model, calcHumanAnims) - 81usize];
6695    ["Offset of field: Model::usesHumanSkin"]
6696        [::std::mem::offset_of!(Model, usesHumanSkin) - 82usize];
6697    ["Offset of field: Model::pushes"][::std::mem::offset_of!(Model, pushes) - 83usize];
6698    ["Offset of field: Model::gravity"][::std::mem::offset_of!(Model, gravity) - 84usize];
6699    ["Offset of field: Model::drag"][::std::mem::offset_of!(Model, drag) - 88usize];
6700    ["Offset of field: Model::groundFriction"]
6701        [::std::mem::offset_of!(Model, groundFriction) - 100usize];
6702    ["Offset of field: Model::GetTransform"]
6703        [::std::mem::offset_of!(Model, GetTransform) - 112usize];
6704    ["Offset of field: Model::DrawArm"][::std::mem::offset_of!(Model, DrawArm) - 120usize];
6705    ["Offset of field: Model::maxScale"][::std::mem::offset_of!(Model, maxScale) - 128usize];
6706    ["Offset of field: Model::shadowScale"][::std::mem::offset_of!(Model, shadowScale) - 132usize];
6707    ["Offset of field: Model::maxVertices"][::std::mem::offset_of!(Model, maxVertices) - 136usize];
6708    ["Offset of field: Model::next"][::std::mem::offset_of!(Model, next) - 144usize];
6709};
6710#[repr(C)]
6711#[derive(Debug, Copy, Clone, PartialEq)]
6712pub struct _ModelsData {
6713    pub Cols: [PackedCol; 6usize],
6714    pub uScale: f32,
6715    pub vScale: f32,
6716    pub cosHead: f32,
6717    pub sinHead: f32,
6718    pub Rotation: cc_uint8,
6719    pub skinType: cc_uint8,
6720    pub ClassicArms: cc_bool,
6721    pub Active: *mut Model,
6722    pub Vb: GfxResourceID,
6723    pub Vertices: *mut VertexTextured,
6724    pub MaxVertices: ::std::os::raw::c_int,
6725    pub Human: *mut Model,
6726    pub Block: *mut Model,
6727}
6728#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6729const _: () = {
6730    ["Size of _ModelsData"][::std::mem::size_of::<_ModelsData>() - 96usize];
6731    ["Alignment of _ModelsData"][::std::mem::align_of::<_ModelsData>() - 8usize];
6732    ["Offset of field: _ModelsData::Cols"][::std::mem::offset_of!(_ModelsData, Cols) - 0usize];
6733    ["Offset of field: _ModelsData::uScale"][::std::mem::offset_of!(_ModelsData, uScale) - 24usize];
6734    ["Offset of field: _ModelsData::vScale"][::std::mem::offset_of!(_ModelsData, vScale) - 28usize];
6735    ["Offset of field: _ModelsData::cosHead"]
6736        [::std::mem::offset_of!(_ModelsData, cosHead) - 32usize];
6737    ["Offset of field: _ModelsData::sinHead"]
6738        [::std::mem::offset_of!(_ModelsData, sinHead) - 36usize];
6739    ["Offset of field: _ModelsData::Rotation"]
6740        [::std::mem::offset_of!(_ModelsData, Rotation) - 40usize];
6741    ["Offset of field: _ModelsData::skinType"]
6742        [::std::mem::offset_of!(_ModelsData, skinType) - 41usize];
6743    ["Offset of field: _ModelsData::ClassicArms"]
6744        [::std::mem::offset_of!(_ModelsData, ClassicArms) - 42usize];
6745    ["Offset of field: _ModelsData::Active"][::std::mem::offset_of!(_ModelsData, Active) - 48usize];
6746    ["Offset of field: _ModelsData::Vb"][::std::mem::offset_of!(_ModelsData, Vb) - 56usize];
6747    ["Offset of field: _ModelsData::Vertices"]
6748        [::std::mem::offset_of!(_ModelsData, Vertices) - 64usize];
6749    ["Offset of field: _ModelsData::MaxVertices"]
6750        [::std::mem::offset_of!(_ModelsData, MaxVertices) - 72usize];
6751    ["Offset of field: _ModelsData::Human"][::std::mem::offset_of!(_ModelsData, Human) - 80usize];
6752    ["Offset of field: _ModelsData::Block"][::std::mem::offset_of!(_ModelsData, Block) - 88usize];
6753};
6754#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
6755    pub static mut Models: _ModelsData;
6756}
6757unsafe extern "C" {
6758    pub fn Model_Init(model: *mut Model);
6759}
6760unsafe extern "C" {
6761    pub fn Model_Render(model: *mut Model, entity: *mut Entity);
6762}
6763unsafe extern "C" {
6764    pub fn Model_SetupState(model: *mut Model, entity: *mut Entity);
6765}
6766unsafe extern "C" {
6767    pub fn Model_ApplyTexture(entity: *mut Entity);
6768}
6769unsafe extern "C" {
6770    pub fn Model_UpdateVB();
6771}
6772unsafe extern "C" {
6773    pub fn Model_DrawPart(part: *mut ModelPart);
6774}
6775unsafe extern "C" {
6776    pub fn Model_DrawRotate(
6777        angleX: f32,
6778        angleY: f32,
6779        angleZ: f32,
6780        part: *mut ModelPart,
6781        head: cc_bool,
6782    );
6783}
6784unsafe extern "C" {
6785    pub fn Model_DrawArmPart(part: *mut ModelPart);
6786}
6787unsafe extern "C" {
6788    pub fn Model_Get(name: *const cc_string) -> *mut Model;
6789}
6790unsafe extern "C" {
6791    pub fn Model_Register(model: *mut Model);
6792}
6793unsafe extern "C" {
6794    pub fn Model_RegisterTexture(tex: *mut ModelTex);
6795}
6796#[repr(C)]
6797#[derive(Debug, Copy, Clone, PartialEq)]
6798pub struct BoxDesc {
6799    pub texX: cc_uint16,
6800    pub texY: cc_uint16,
6801    pub sizeX: cc_uint8,
6802    pub sizeY: cc_uint8,
6803    pub sizeZ: cc_uint8,
6804    pub x1: f32,
6805    pub y1: f32,
6806    pub z1: f32,
6807    pub x2: f32,
6808    pub y2: f32,
6809    pub z2: f32,
6810    pub rotX: f32,
6811    pub rotY: f32,
6812    pub rotZ: f32,
6813}
6814#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6815const _: () = {
6816    ["Size of BoxDesc"][::std::mem::size_of::<BoxDesc>() - 44usize];
6817    ["Alignment of BoxDesc"][::std::mem::align_of::<BoxDesc>() - 4usize];
6818    ["Offset of field: BoxDesc::texX"][::std::mem::offset_of!(BoxDesc, texX) - 0usize];
6819    ["Offset of field: BoxDesc::texY"][::std::mem::offset_of!(BoxDesc, texY) - 2usize];
6820    ["Offset of field: BoxDesc::sizeX"][::std::mem::offset_of!(BoxDesc, sizeX) - 4usize];
6821    ["Offset of field: BoxDesc::sizeY"][::std::mem::offset_of!(BoxDesc, sizeY) - 5usize];
6822    ["Offset of field: BoxDesc::sizeZ"][::std::mem::offset_of!(BoxDesc, sizeZ) - 6usize];
6823    ["Offset of field: BoxDesc::x1"][::std::mem::offset_of!(BoxDesc, x1) - 8usize];
6824    ["Offset of field: BoxDesc::y1"][::std::mem::offset_of!(BoxDesc, y1) - 12usize];
6825    ["Offset of field: BoxDesc::z1"][::std::mem::offset_of!(BoxDesc, z1) - 16usize];
6826    ["Offset of field: BoxDesc::x2"][::std::mem::offset_of!(BoxDesc, x2) - 20usize];
6827    ["Offset of field: BoxDesc::y2"][::std::mem::offset_of!(BoxDesc, y2) - 24usize];
6828    ["Offset of field: BoxDesc::z2"][::std::mem::offset_of!(BoxDesc, z2) - 28usize];
6829    ["Offset of field: BoxDesc::rotX"][::std::mem::offset_of!(BoxDesc, rotX) - 32usize];
6830    ["Offset of field: BoxDesc::rotY"][::std::mem::offset_of!(BoxDesc, rotY) - 36usize];
6831    ["Offset of field: BoxDesc::rotZ"][::std::mem::offset_of!(BoxDesc, rotZ) - 40usize];
6832};
6833unsafe extern "C" {
6834    pub fn BoxDesc_BuildBox(part: *mut ModelPart, desc: *const BoxDesc);
6835}
6836unsafe extern "C" {
6837    pub fn BoxDesc_BuildRotatedBox(part: *mut ModelPart, desc: *const BoxDesc);
6838}
6839unsafe extern "C" {
6840    pub fn BoxDesc_XQuad(
6841        m: *mut Model,
6842        texX: ::std::os::raw::c_int,
6843        texY: ::std::os::raw::c_int,
6844        texWidth: ::std::os::raw::c_int,
6845        texHeight: ::std::os::raw::c_int,
6846        z1: f32,
6847        z2: f32,
6848        y1: f32,
6849        y2: f32,
6850        x: f32,
6851        swapU: cc_bool,
6852    );
6853}
6854unsafe extern "C" {
6855    pub fn BoxDesc_YQuad(
6856        m: *mut Model,
6857        texX: ::std::os::raw::c_int,
6858        texY: ::std::os::raw::c_int,
6859        texWidth: ::std::os::raw::c_int,
6860        texHeight: ::std::os::raw::c_int,
6861        x1: f32,
6862        x2: f32,
6863        z1: f32,
6864        z2: f32,
6865        y: f32,
6866        swapU: cc_bool,
6867    );
6868}
6869unsafe extern "C" {
6870    pub fn BoxDesc_ZQuad(
6871        m: *mut Model,
6872        texX: ::std::os::raw::c_int,
6873        texY: ::std::os::raw::c_int,
6874        texWidth: ::std::os::raw::c_int,
6875        texHeight: ::std::os::raw::c_int,
6876        x1: f32,
6877        x2: f32,
6878        y1: f32,
6879        y2: f32,
6880        z: f32,
6881        swapU: cc_bool,
6882    );
6883}
6884unsafe extern "C" {
6885    pub fn BoxDesc_XQuad2(
6886        m: *mut Model,
6887        z1: f32,
6888        z2: f32,
6889        y1: f32,
6890        y2: f32,
6891        x: f32,
6892        u1: ::std::os::raw::c_int,
6893        v1: ::std::os::raw::c_int,
6894        u2: ::std::os::raw::c_int,
6895        v2: ::std::os::raw::c_int,
6896    );
6897}
6898unsafe extern "C" {
6899    pub fn BoxDesc_YQuad2(
6900        m: *mut Model,
6901        x1: f32,
6902        x2: f32,
6903        z1: f32,
6904        z2: f32,
6905        y: f32,
6906        u1: ::std::os::raw::c_int,
6907        v1: ::std::os::raw::c_int,
6908        u2: ::std::os::raw::c_int,
6909        v2: ::std::os::raw::c_int,
6910    );
6911}
6912unsafe extern "C" {
6913    pub fn BoxDesc_ZQuad2(
6914        m: *mut Model,
6915        x1: f32,
6916        x2: f32,
6917        y1: f32,
6918        y2: f32,
6919        z: f32,
6920        u1: ::std::os::raw::c_int,
6921        v1: ::std::os::raw::c_int,
6922        u2: ::std::os::raw::c_int,
6923        v2: ::std::os::raw::c_int,
6924    );
6925}
6926pub const CustomModelAnimType_CustomModelAnimType_None: CustomModelAnimType = 0;
6927pub const CustomModelAnimType_CustomModelAnimType_Head: CustomModelAnimType = 1;
6928pub const CustomModelAnimType_CustomModelAnimType_LeftLegX: CustomModelAnimType = 2;
6929pub const CustomModelAnimType_CustomModelAnimType_RightLegX: CustomModelAnimType = 3;
6930pub const CustomModelAnimType_CustomModelAnimType_LeftArmX: CustomModelAnimType = 4;
6931pub const CustomModelAnimType_CustomModelAnimType_LeftArmZ: CustomModelAnimType = 5;
6932pub const CustomModelAnimType_CustomModelAnimType_RightArmX: CustomModelAnimType = 6;
6933pub const CustomModelAnimType_CustomModelAnimType_RightArmZ: CustomModelAnimType = 7;
6934pub const CustomModelAnimType_CustomModelAnimType_Spin: CustomModelAnimType = 8;
6935pub const CustomModelAnimType_CustomModelAnimType_SpinVelocity: CustomModelAnimType = 9;
6936pub const CustomModelAnimType_CustomModelAnimType_SinRotate: CustomModelAnimType = 10;
6937pub const CustomModelAnimType_CustomModelAnimType_SinRotateVelocity: CustomModelAnimType = 11;
6938pub const CustomModelAnimType_CustomModelAnimType_SinTranslate: CustomModelAnimType = 12;
6939pub const CustomModelAnimType_CustomModelAnimType_SinTranslateVelocity: CustomModelAnimType = 13;
6940pub const CustomModelAnimType_CustomModelAnimType_SinSize: CustomModelAnimType = 14;
6941pub const CustomModelAnimType_CustomModelAnimType_SinSizeVelocity: CustomModelAnimType = 15;
6942pub const CustomModelAnimType_CustomModelAnimType_FlipRotate: CustomModelAnimType = 16;
6943pub const CustomModelAnimType_CustomModelAnimType_FlipRotateVelocity: CustomModelAnimType = 17;
6944pub const CustomModelAnimType_CustomModelAnimType_FlipTranslate: CustomModelAnimType = 18;
6945pub const CustomModelAnimType_CustomModelAnimType_FlipTranslateVelocity: CustomModelAnimType = 19;
6946pub const CustomModelAnimType_CustomModelAnimType_FlipSize: CustomModelAnimType = 20;
6947pub const CustomModelAnimType_CustomModelAnimType_FlipSizeVelocity: CustomModelAnimType = 21;
6948pub type CustomModelAnimType = ::std::os::raw::c_int;
6949pub const CustomModelAnimAxis_CustomModelAnimAxis_X: CustomModelAnimAxis = 0;
6950pub const CustomModelAnimAxis_CustomModelAnimAxis_Y: CustomModelAnimAxis = 1;
6951pub const CustomModelAnimAxis_CustomModelAnimAxis_Z: CustomModelAnimAxis = 2;
6952pub type CustomModelAnimAxis = ::std::os::raw::c_int;
6953#[repr(C)]
6954#[derive(Debug, Copy, Clone, PartialEq)]
6955pub struct CustomModelAnim {
6956    pub a: f32,
6957    pub b: f32,
6958    pub c: f32,
6959    pub d: f32,
6960}
6961#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6962const _: () = {
6963    ["Size of CustomModelAnim"][::std::mem::size_of::<CustomModelAnim>() - 16usize];
6964    ["Alignment of CustomModelAnim"][::std::mem::align_of::<CustomModelAnim>() - 4usize];
6965    ["Offset of field: CustomModelAnim::a"][::std::mem::offset_of!(CustomModelAnim, a) - 0usize];
6966    ["Offset of field: CustomModelAnim::b"][::std::mem::offset_of!(CustomModelAnim, b) - 4usize];
6967    ["Offset of field: CustomModelAnim::c"][::std::mem::offset_of!(CustomModelAnim, c) - 8usize];
6968    ["Offset of field: CustomModelAnim::d"][::std::mem::offset_of!(CustomModelAnim, d) - 12usize];
6969};
6970#[repr(C)]
6971#[derive(Debug, Copy, Clone, PartialEq)]
6972pub struct CustomModelPartDef {
6973    pub min: Vec3,
6974    pub max: Vec3,
6975    pub u1: [cc_uint16; 6usize],
6976    pub v1: [cc_uint16; 6usize],
6977    pub u2: [cc_uint16; 6usize],
6978    pub v2: [cc_uint16; 6usize],
6979    pub rotationOrigin: Vec3,
6980    pub flags: cc_uint8,
6981}
6982#[allow(clippy::unnecessary_operation, clippy::identity_op)]
6983const _: () = {
6984    ["Size of CustomModelPartDef"][::std::mem::size_of::<CustomModelPartDef>() - 88usize];
6985    ["Alignment of CustomModelPartDef"][::std::mem::align_of::<CustomModelPartDef>() - 4usize];
6986    ["Offset of field: CustomModelPartDef::min"]
6987        [::std::mem::offset_of!(CustomModelPartDef, min) - 0usize];
6988    ["Offset of field: CustomModelPartDef::max"]
6989        [::std::mem::offset_of!(CustomModelPartDef, max) - 12usize];
6990    ["Offset of field: CustomModelPartDef::u1"]
6991        [::std::mem::offset_of!(CustomModelPartDef, u1) - 24usize];
6992    ["Offset of field: CustomModelPartDef::v1"]
6993        [::std::mem::offset_of!(CustomModelPartDef, v1) - 36usize];
6994    ["Offset of field: CustomModelPartDef::u2"]
6995        [::std::mem::offset_of!(CustomModelPartDef, u2) - 48usize];
6996    ["Offset of field: CustomModelPartDef::v2"]
6997        [::std::mem::offset_of!(CustomModelPartDef, v2) - 60usize];
6998    ["Offset of field: CustomModelPartDef::rotationOrigin"]
6999        [::std::mem::offset_of!(CustomModelPartDef, rotationOrigin) - 72usize];
7000    ["Offset of field: CustomModelPartDef::flags"]
7001        [::std::mem::offset_of!(CustomModelPartDef, flags) - 84usize];
7002};
7003#[repr(C)]
7004#[derive(Debug, Copy, Clone, PartialEq)]
7005pub struct CustomModelPart {
7006    pub modelPart: ModelPart,
7007    pub rotation: Vec3,
7008    pub anims: [CustomModelAnim; 4usize],
7009    pub animType: [cc_uint8; 4usize],
7010    pub animAxis: [cc_uint8; 4usize],
7011    pub fullbright: cc_bool,
7012    pub firstPersonArm: cc_bool,
7013}
7014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7015const _: () = {
7016    ["Size of CustomModelPart"][::std::mem::size_of::<CustomModelPart>() - 104usize];
7017    ["Alignment of CustomModelPart"][::std::mem::align_of::<CustomModelPart>() - 4usize];
7018    ["Offset of field: CustomModelPart::modelPart"]
7019        [::std::mem::offset_of!(CustomModelPart, modelPart) - 0usize];
7020    ["Offset of field: CustomModelPart::rotation"]
7021        [::std::mem::offset_of!(CustomModelPart, rotation) - 16usize];
7022    ["Offset of field: CustomModelPart::anims"]
7023        [::std::mem::offset_of!(CustomModelPart, anims) - 28usize];
7024    ["Offset of field: CustomModelPart::animType"]
7025        [::std::mem::offset_of!(CustomModelPart, animType) - 92usize];
7026    ["Offset of field: CustomModelPart::animAxis"]
7027        [::std::mem::offset_of!(CustomModelPart, animAxis) - 96usize];
7028    ["Offset of field: CustomModelPart::fullbright"]
7029        [::std::mem::offset_of!(CustomModelPart, fullbright) - 100usize];
7030    ["Offset of field: CustomModelPart::firstPersonArm"]
7031        [::std::mem::offset_of!(CustomModelPart, firstPersonArm) - 101usize];
7032};
7033#[repr(C)]
7034#[derive(Debug, Copy, Clone, PartialEq)]
7035pub struct CustomModel {
7036    pub model: Model,
7037    pub name: [::std::os::raw::c_char; 65usize],
7038    pub registered: cc_bool,
7039    pub defined: cc_bool,
7040    pub curPartIndex: cc_uint8,
7041    pub nameY: f32,
7042    pub eyeY: f32,
7043    pub collisionBounds: Vec3,
7044    pub pickingBoundsAABB: AABB,
7045    pub uScale: cc_uint16,
7046    pub vScale: cc_uint16,
7047    pub numParts: cc_uint8,
7048    pub numArmParts: cc_uint8,
7049    pub parts: [CustomModelPart; 64usize],
7050}
7051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7052const _: () = {
7053    ["Size of CustomModel"][::std::mem::size_of::<CustomModel>() - 6928usize];
7054    ["Alignment of CustomModel"][::std::mem::align_of::<CustomModel>() - 8usize];
7055    ["Offset of field: CustomModel::model"][::std::mem::offset_of!(CustomModel, model) - 0usize];
7056    ["Offset of field: CustomModel::name"][::std::mem::offset_of!(CustomModel, name) - 152usize];
7057    ["Offset of field: CustomModel::registered"]
7058        [::std::mem::offset_of!(CustomModel, registered) - 217usize];
7059    ["Offset of field: CustomModel::defined"]
7060        [::std::mem::offset_of!(CustomModel, defined) - 218usize];
7061    ["Offset of field: CustomModel::curPartIndex"]
7062        [::std::mem::offset_of!(CustomModel, curPartIndex) - 219usize];
7063    ["Offset of field: CustomModel::nameY"][::std::mem::offset_of!(CustomModel, nameY) - 220usize];
7064    ["Offset of field: CustomModel::eyeY"][::std::mem::offset_of!(CustomModel, eyeY) - 224usize];
7065    ["Offset of field: CustomModel::collisionBounds"]
7066        [::std::mem::offset_of!(CustomModel, collisionBounds) - 228usize];
7067    ["Offset of field: CustomModel::pickingBoundsAABB"]
7068        [::std::mem::offset_of!(CustomModel, pickingBoundsAABB) - 240usize];
7069    ["Offset of field: CustomModel::uScale"]
7070        [::std::mem::offset_of!(CustomModel, uScale) - 264usize];
7071    ["Offset of field: CustomModel::vScale"]
7072        [::std::mem::offset_of!(CustomModel, vScale) - 266usize];
7073    ["Offset of field: CustomModel::numParts"]
7074        [::std::mem::offset_of!(CustomModel, numParts) - 268usize];
7075    ["Offset of field: CustomModel::numArmParts"]
7076        [::std::mem::offset_of!(CustomModel, numArmParts) - 269usize];
7077    ["Offset of field: CustomModel::parts"][::std::mem::offset_of!(CustomModel, parts) - 272usize];
7078};
7079unsafe extern "C" {
7080    pub fn Options_Reload();
7081}
7082unsafe extern "C" {
7083    pub fn Options_SaveIfChanged();
7084}
7085unsafe extern "C" {
7086    pub fn Options_Get(
7087        key: *const ::std::os::raw::c_char,
7088        value: *mut cc_string,
7089        defValue: *const ::std::os::raw::c_char,
7090    );
7091}
7092unsafe extern "C" {
7093    pub fn Options_GetInt(
7094        key: *const ::std::os::raw::c_char,
7095        min: ::std::os::raw::c_int,
7096        max: ::std::os::raw::c_int,
7097        defValue: ::std::os::raw::c_int,
7098    ) -> ::std::os::raw::c_int;
7099}
7100unsafe extern "C" {
7101    pub fn Options_GetBool(key: *const ::std::os::raw::c_char, defValue: cc_bool) -> cc_bool;
7102}
7103unsafe extern "C" {
7104    pub fn Options_GetFloat(
7105        key: *const ::std::os::raw::c_char,
7106        min: f32,
7107        max: f32,
7108        defValue: f32,
7109    ) -> f32;
7110}
7111unsafe extern "C" {
7112    pub fn Options_GetEnum(
7113        key: *const ::std::os::raw::c_char,
7114        defValue: ::std::os::raw::c_int,
7115        names: *const *const ::std::os::raw::c_char,
7116        namesCount: ::std::os::raw::c_int,
7117    ) -> ::std::os::raw::c_int;
7118}
7119unsafe extern "C" {
7120    pub fn Options_SetBool(keyRaw: *const ::std::os::raw::c_char, value: cc_bool);
7121}
7122unsafe extern "C" {
7123    pub fn Options_SetInt(keyRaw: *const ::std::os::raw::c_char, value: ::std::os::raw::c_int);
7124}
7125unsafe extern "C" {
7126    pub fn Options_Set(keyRaw: *const ::std::os::raw::c_char, value: *const cc_string);
7127}
7128unsafe extern "C" {
7129    pub fn Options_SetString(key: *const cc_string, value: *const cc_string);
7130}
7131#[repr(C)]
7132#[derive(Debug, Copy, Clone, PartialEq)]
7133pub struct Particle {
7134    pub velocity: Vec3,
7135    pub lifetime: f32,
7136    pub lastPos: Vec3,
7137    pub nextPos: Vec3,
7138    pub size: f32,
7139}
7140#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7141const _: () = {
7142    ["Size of Particle"][::std::mem::size_of::<Particle>() - 44usize];
7143    ["Alignment of Particle"][::std::mem::align_of::<Particle>() - 4usize];
7144    ["Offset of field: Particle::velocity"][::std::mem::offset_of!(Particle, velocity) - 0usize];
7145    ["Offset of field: Particle::lifetime"][::std::mem::offset_of!(Particle, lifetime) - 12usize];
7146    ["Offset of field: Particle::lastPos"][::std::mem::offset_of!(Particle, lastPos) - 16usize];
7147    ["Offset of field: Particle::nextPos"][::std::mem::offset_of!(Particle, nextPos) - 28usize];
7148    ["Offset of field: Particle::size"][::std::mem::offset_of!(Particle, size) - 40usize];
7149};
7150#[repr(C)]
7151#[derive(Debug, Copy, Clone, PartialEq)]
7152pub struct CustomParticleEffect {
7153    pub rec: TextureRec,
7154    pub tintCol: PackedCol,
7155    pub frameCount: cc_uint8,
7156    pub particleCount: cc_uint8,
7157    pub collideFlags: cc_uint8,
7158    pub fullBright: cc_bool,
7159    pub size: f32,
7160    pub sizeVariation: f32,
7161    pub spread: f32,
7162    pub speed: f32,
7163    pub gravity: f32,
7164    pub baseLifetime: f32,
7165    pub lifetimeVariation: f32,
7166}
7167#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7168const _: () = {
7169    ["Size of CustomParticleEffect"][::std::mem::size_of::<CustomParticleEffect>() - 52usize];
7170    ["Alignment of CustomParticleEffect"][::std::mem::align_of::<CustomParticleEffect>() - 4usize];
7171    ["Offset of field: CustomParticleEffect::rec"]
7172        [::std::mem::offset_of!(CustomParticleEffect, rec) - 0usize];
7173    ["Offset of field: CustomParticleEffect::tintCol"]
7174        [::std::mem::offset_of!(CustomParticleEffect, tintCol) - 16usize];
7175    ["Offset of field: CustomParticleEffect::frameCount"]
7176        [::std::mem::offset_of!(CustomParticleEffect, frameCount) - 20usize];
7177    ["Offset of field: CustomParticleEffect::particleCount"]
7178        [::std::mem::offset_of!(CustomParticleEffect, particleCount) - 21usize];
7179    ["Offset of field: CustomParticleEffect::collideFlags"]
7180        [::std::mem::offset_of!(CustomParticleEffect, collideFlags) - 22usize];
7181    ["Offset of field: CustomParticleEffect::fullBright"]
7182        [::std::mem::offset_of!(CustomParticleEffect, fullBright) - 23usize];
7183    ["Offset of field: CustomParticleEffect::size"]
7184        [::std::mem::offset_of!(CustomParticleEffect, size) - 24usize];
7185    ["Offset of field: CustomParticleEffect::sizeVariation"]
7186        [::std::mem::offset_of!(CustomParticleEffect, sizeVariation) - 28usize];
7187    ["Offset of field: CustomParticleEffect::spread"]
7188        [::std::mem::offset_of!(CustomParticleEffect, spread) - 32usize];
7189    ["Offset of field: CustomParticleEffect::speed"]
7190        [::std::mem::offset_of!(CustomParticleEffect, speed) - 36usize];
7191    ["Offset of field: CustomParticleEffect::gravity"]
7192        [::std::mem::offset_of!(CustomParticleEffect, gravity) - 40usize];
7193    ["Offset of field: CustomParticleEffect::baseLifetime"]
7194        [::std::mem::offset_of!(CustomParticleEffect, baseLifetime) - 44usize];
7195    ["Offset of field: CustomParticleEffect::lifetimeVariation"]
7196        [::std::mem::offset_of!(CustomParticleEffect, lifetimeVariation) - 48usize];
7197};
7198#[repr(C)]
7199#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7200pub struct cc_winstring_ {
7201    pub uni: [cc_unichar; 300usize],
7202    pub ansi: [::std::os::raw::c_char; 300usize],
7203}
7204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7205const _: () = {
7206    ["Size of cc_winstring_"][::std::mem::size_of::<cc_winstring_>() - 900usize];
7207    ["Alignment of cc_winstring_"][::std::mem::align_of::<cc_winstring_>() - 2usize];
7208    ["Offset of field: cc_winstring_::uni"][::std::mem::offset_of!(cc_winstring_, uni) - 0usize];
7209    ["Offset of field: cc_winstring_::ansi"]
7210        [::std::mem::offset_of!(cc_winstring_, ansi) - 600usize];
7211};
7212pub type cc_winstring = cc_winstring_;
7213pub type cc_filepath = cc_winstring;
7214unsafe extern "C" {
7215    pub fn Process_StartGame2(args: *const cc_string, numArgs: ::std::os::raw::c_int) -> cc_result;
7216}
7217unsafe extern "C" {
7218    pub fn Process_Exit(code: cc_result);
7219}
7220unsafe extern "C" {
7221    pub fn Process_StartOpen(args: *const cc_string) -> cc_result;
7222}
7223#[repr(C)]
7224#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7225pub struct UpdaterBuild {
7226    pub name: *const ::std::os::raw::c_char,
7227    pub path: *const ::std::os::raw::c_char,
7228}
7229#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7230const _: () = {
7231    ["Size of UpdaterBuild"][::std::mem::size_of::<UpdaterBuild>() - 16usize];
7232    ["Alignment of UpdaterBuild"][::std::mem::align_of::<UpdaterBuild>() - 8usize];
7233    ["Offset of field: UpdaterBuild::name"][::std::mem::offset_of!(UpdaterBuild, name) - 0usize];
7234    ["Offset of field: UpdaterBuild::path"][::std::mem::offset_of!(UpdaterBuild, path) - 8usize];
7235};
7236#[repr(C)]
7237#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7238pub struct UpdaterInfo {
7239    pub info: *const ::std::os::raw::c_char,
7240    pub numBuilds: ::std::os::raw::c_int,
7241    pub builds: [UpdaterBuild; 2usize],
7242}
7243#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7244const _: () = {
7245    ["Size of UpdaterInfo"][::std::mem::size_of::<UpdaterInfo>() - 48usize];
7246    ["Alignment of UpdaterInfo"][::std::mem::align_of::<UpdaterInfo>() - 8usize];
7247    ["Offset of field: UpdaterInfo::info"][::std::mem::offset_of!(UpdaterInfo, info) - 0usize];
7248    ["Offset of field: UpdaterInfo::numBuilds"]
7249        [::std::mem::offset_of!(UpdaterInfo, numBuilds) - 8usize];
7250    ["Offset of field: UpdaterInfo::builds"][::std::mem::offset_of!(UpdaterInfo, builds) - 16usize];
7251};
7252unsafe extern "C" {
7253    pub fn DynamicLib_Load2(path: *const cc_string) -> *mut ::std::os::raw::c_void;
7254}
7255unsafe extern "C" {
7256    pub fn DynamicLib_Get2(
7257        lib: *mut ::std::os::raw::c_void,
7258        name: *const ::std::os::raw::c_char,
7259    ) -> *mut ::std::os::raw::c_void;
7260}
7261unsafe extern "C" {
7262    pub fn DynamicLib_DescribeError(dst: *mut cc_string) -> cc_bool;
7263}
7264unsafe extern "C" {
7265    pub fn DynamicLib_Load(
7266        path: *const cc_string,
7267        lib: *mut *mut ::std::os::raw::c_void,
7268    ) -> cc_result;
7269}
7270unsafe extern "C" {
7271    pub fn DynamicLib_Get(
7272        lib: *mut ::std::os::raw::c_void,
7273        name: *const ::std::os::raw::c_char,
7274        symbol: *mut *mut ::std::os::raw::c_void,
7275    ) -> cc_result;
7276}
7277#[repr(C)]
7278#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7279pub struct DynamicLibSym {
7280    pub name: *const ::std::os::raw::c_char,
7281    pub symAddr: *mut *mut ::std::os::raw::c_void,
7282}
7283#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7284const _: () = {
7285    ["Size of DynamicLibSym"][::std::mem::size_of::<DynamicLibSym>() - 16usize];
7286    ["Alignment of DynamicLibSym"][::std::mem::align_of::<DynamicLibSym>() - 8usize];
7287    ["Offset of field: DynamicLibSym::name"][::std::mem::offset_of!(DynamicLibSym, name) - 0usize];
7288    ["Offset of field: DynamicLibSym::symAddr"]
7289        [::std::mem::offset_of!(DynamicLibSym, symAddr) - 8usize];
7290};
7291unsafe extern "C" {
7292    pub fn Mem_TryAlloc(numElems: cc_uint32, elemsSize: cc_uint32) -> *mut ::std::os::raw::c_void;
7293}
7294unsafe extern "C" {
7295    pub fn Mem_TryAllocCleared(
7296        numElems: cc_uint32,
7297        elemsSize: cc_uint32,
7298    ) -> *mut ::std::os::raw::c_void;
7299}
7300unsafe extern "C" {
7301    pub fn Mem_TryRealloc(
7302        mem: *mut ::std::os::raw::c_void,
7303        numElems: cc_uint32,
7304        elemsSize: cc_uint32,
7305    ) -> *mut ::std::os::raw::c_void;
7306}
7307unsafe extern "C" {
7308    pub fn Mem_Alloc(
7309        numElems: cc_uint32,
7310        elemsSize: cc_uint32,
7311        place: *const ::std::os::raw::c_char,
7312    ) -> *mut ::std::os::raw::c_void;
7313}
7314unsafe extern "C" {
7315    pub fn Mem_AllocCleared(
7316        numElems: cc_uint32,
7317        elemsSize: cc_uint32,
7318        place: *const ::std::os::raw::c_char,
7319    ) -> *mut ::std::os::raw::c_void;
7320}
7321unsafe extern "C" {
7322    pub fn Mem_Realloc(
7323        mem: *mut ::std::os::raw::c_void,
7324        numElems: cc_uint32,
7325        elemsSize: cc_uint32,
7326        place: *const ::std::os::raw::c_char,
7327    ) -> *mut ::std::os::raw::c_void;
7328}
7329unsafe extern "C" {
7330    pub fn Mem_Free(mem: *mut ::std::os::raw::c_void);
7331}
7332unsafe extern "C" {
7333    pub fn DateTime_CurrentUTC() -> TimeMS;
7334}
7335unsafe extern "C" {
7336    pub fn DateTime_CurrentLocal(t: *mut DateTime);
7337}
7338unsafe extern "C" {
7339    pub fn Stopwatch_Measure() -> cc_uint64;
7340}
7341unsafe extern "C" {
7342    pub fn Stopwatch_ElapsedMicroseconds(beg: cc_uint64, end: cc_uint64) -> cc_uint64;
7343}
7344pub type cc_file = *mut ::std::os::raw::c_void;
7345pub const File_SeekFrom_FILE_SEEKFROM_BEGIN: File_SeekFrom = 0;
7346pub const File_SeekFrom_FILE_SEEKFROM_CURRENT: File_SeekFrom = 1;
7347pub const File_SeekFrom_FILE_SEEKFROM_END: File_SeekFrom = 2;
7348pub type File_SeekFrom = ::std::os::raw::c_int;
7349pub type Directory_EnumCallback = ::std::option::Option<
7350    unsafe extern "C" fn(
7351        filename: *const cc_string,
7352        obj: *mut ::std::os::raw::c_void,
7353        isDirectory: ::std::os::raw::c_int,
7354    ),
7355>;
7356unsafe extern "C" {
7357    pub fn Directory_Enum(
7358        path: *const cc_string,
7359        obj: *mut ::std::os::raw::c_void,
7360        callback: Directory_EnumCallback,
7361    ) -> cc_result;
7362}
7363pub type Thread_StartFunc = ::std::option::Option<unsafe extern "C" fn()>;
7364unsafe extern "C" {
7365    pub fn Thread_Sleep(milliseconds: cc_uint32);
7366}
7367unsafe extern "C" {
7368    pub fn Thread_Run(
7369        handle: *mut *mut ::std::os::raw::c_void,
7370        func: Thread_StartFunc,
7371        stackSize: ::std::os::raw::c_int,
7372        name: *const ::std::os::raw::c_char,
7373    );
7374}
7375unsafe extern "C" {
7376    pub fn Thread_Detach(handle: *mut ::std::os::raw::c_void);
7377}
7378unsafe extern "C" {
7379    pub fn Thread_Join(handle: *mut ::std::os::raw::c_void);
7380}
7381unsafe extern "C" {
7382    pub fn Mutex_Create(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
7383}
7384unsafe extern "C" {
7385    pub fn Mutex_Free(handle: *mut ::std::os::raw::c_void);
7386}
7387unsafe extern "C" {
7388    pub fn Mutex_Lock(handle: *mut ::std::os::raw::c_void);
7389}
7390unsafe extern "C" {
7391    pub fn Mutex_Unlock(handle: *mut ::std::os::raw::c_void);
7392}
7393unsafe extern "C" {
7394    pub fn Waitable_Create(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void;
7395}
7396unsafe extern "C" {
7397    pub fn Waitable_Free(handle: *mut ::std::os::raw::c_void);
7398}
7399unsafe extern "C" {
7400    pub fn Waitable_Signal(handle: *mut ::std::os::raw::c_void);
7401}
7402unsafe extern "C" {
7403    pub fn Waitable_Wait(handle: *mut ::std::os::raw::c_void);
7404}
7405unsafe extern "C" {
7406    pub fn Waitable_WaitFor(handle: *mut ::std::os::raw::c_void, milliseconds: cc_uint32);
7407}
7408pub type cc_socket = cc_uintptr;
7409#[repr(C)]
7410#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7411pub struct cc_sockaddr_ {
7412    pub size: ::std::os::raw::c_int,
7413    pub data: [cc_uint8; 512usize],
7414}
7415#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7416const _: () = {
7417    ["Size of cc_sockaddr_"][::std::mem::size_of::<cc_sockaddr_>() - 516usize];
7418    ["Alignment of cc_sockaddr_"][::std::mem::align_of::<cc_sockaddr_>() - 4usize];
7419    ["Offset of field: cc_sockaddr_::size"][::std::mem::offset_of!(cc_sockaddr_, size) - 0usize];
7420    ["Offset of field: cc_sockaddr_::data"][::std::mem::offset_of!(cc_sockaddr_, data) - 4usize];
7421};
7422pub type cc_sockaddr = cc_sockaddr_;
7423pub const Socket_PollMode_SOCKET_POLL_READ: Socket_PollMode = 0;
7424pub const Socket_PollMode_SOCKET_POLL_WRITE: Socket_PollMode = 1;
7425pub type Socket_PollMode = ::std::os::raw::c_int;
7426pub const OPCODE__OPCODE_HANDSHAKE: OPCODE_ = 0;
7427pub const OPCODE__OPCODE_PING: OPCODE_ = 1;
7428pub const OPCODE__OPCODE_LEVEL_BEGIN: OPCODE_ = 2;
7429pub const OPCODE__OPCODE_LEVEL_DATA: OPCODE_ = 3;
7430pub const OPCODE__OPCODE_LEVEL_END: OPCODE_ = 4;
7431pub const OPCODE__OPCODE_SET_BLOCK_CLIENT: OPCODE_ = 5;
7432pub const OPCODE__OPCODE_SET_BLOCK: OPCODE_ = 6;
7433pub const OPCODE__OPCODE_ADD_ENTITY: OPCODE_ = 7;
7434pub const OPCODE__OPCODE_ENTITY_TELEPORT: OPCODE_ = 8;
7435pub const OPCODE__OPCODE_RELPOS_AND_ORI_UPDATE: OPCODE_ = 9;
7436pub const OPCODE__OPCODE_RELPOS_UPDATE: OPCODE_ = 10;
7437pub const OPCODE__OPCODE_ORI_UPDATE: OPCODE_ = 11;
7438pub const OPCODE__OPCODE_REMOVE_ENTITY: OPCODE_ = 12;
7439pub const OPCODE__OPCODE_MESSAGE: OPCODE_ = 13;
7440pub const OPCODE__OPCODE_KICK: OPCODE_ = 14;
7441pub const OPCODE__OPCODE_SET_PERMISSION: OPCODE_ = 15;
7442pub const OPCODE__OPCODE_EXT_INFO: OPCODE_ = 16;
7443pub const OPCODE__OPCODE_EXT_ENTRY: OPCODE_ = 17;
7444pub const OPCODE__OPCODE_SET_REACH: OPCODE_ = 18;
7445pub const OPCODE__OPCODE_CUSTOM_BLOCK_LEVEL: OPCODE_ = 19;
7446pub const OPCODE__OPCODE_HOLD_THIS: OPCODE_ = 20;
7447pub const OPCODE__OPCODE_SET_TEXT_HOTKEY: OPCODE_ = 21;
7448pub const OPCODE__OPCODE_EXT_ADD_PLAYER_NAME: OPCODE_ = 22;
7449pub const OPCODE__OPCODE_EXT_ADD_ENTITY: OPCODE_ = 23;
7450pub const OPCODE__OPCODE_EXT_REMOVE_PLAYER_NAME: OPCODE_ = 24;
7451pub const OPCODE__OPCODE_ENV_SET_COLOR: OPCODE_ = 25;
7452pub const OPCODE__OPCODE_MAKE_SELECTION: OPCODE_ = 26;
7453pub const OPCODE__OPCODE_REMOVE_SELECTION: OPCODE_ = 27;
7454pub const OPCODE__OPCODE_SET_BLOCK_PERMISSION: OPCODE_ = 28;
7455pub const OPCODE__OPCODE_SET_MODEL: OPCODE_ = 29;
7456pub const OPCODE__OPCODE_ENV_SET_MAP_APPEARANCE: OPCODE_ = 30;
7457pub const OPCODE__OPCODE_ENV_SET_WEATHER: OPCODE_ = 31;
7458pub const OPCODE__OPCODE_HACK_CONTROL: OPCODE_ = 32;
7459pub const OPCODE__OPCODE_EXT_ADD_ENTITY2: OPCODE_ = 33;
7460pub const OPCODE__OPCODE_PLAYER_CLICK: OPCODE_ = 34;
7461pub const OPCODE__OPCODE_DEFINE_BLOCK: OPCODE_ = 35;
7462pub const OPCODE__OPCODE_UNDEFINE_BLOCK: OPCODE_ = 36;
7463pub const OPCODE__OPCODE_DEFINE_BLOCK_EXT: OPCODE_ = 37;
7464pub const OPCODE__OPCODE_BULK_BLOCK_UPDATE: OPCODE_ = 38;
7465pub const OPCODE__OPCODE_SET_TEXT_COLOR: OPCODE_ = 39;
7466pub const OPCODE__OPCODE_ENV_SET_MAP_URL: OPCODE_ = 40;
7467pub const OPCODE__OPCODE_ENV_SET_MAP_PROPERTY: OPCODE_ = 41;
7468pub const OPCODE__OPCODE_SET_ENTITY_PROPERTY: OPCODE_ = 42;
7469pub const OPCODE__OPCODE_TWO_WAY_PING: OPCODE_ = 43;
7470pub const OPCODE__OPCODE_SET_INVENTORY_ORDER: OPCODE_ = 44;
7471pub const OPCODE__OPCODE_SET_HOTBAR: OPCODE_ = 45;
7472pub const OPCODE__OPCODE_SET_SPAWNPOINT: OPCODE_ = 46;
7473pub const OPCODE__OPCODE_VELOCITY_CONTROL: OPCODE_ = 47;
7474pub const OPCODE__OPCODE_DEFINE_EFFECT: OPCODE_ = 48;
7475pub const OPCODE__OPCODE_SPAWN_EFFECT: OPCODE_ = 49;
7476pub const OPCODE__OPCODE_DEFINE_MODEL: OPCODE_ = 50;
7477pub const OPCODE__OPCODE_DEFINE_MODEL_PART: OPCODE_ = 51;
7478pub const OPCODE__OPCODE_UNDEFINE_MODEL: OPCODE_ = 52;
7479pub const OPCODE__OPCODE_PLUGIN_MESSAGE: OPCODE_ = 53;
7480pub const OPCODE__OPCODE_ENTITY_TELEPORT_EXT: OPCODE_ = 54;
7481pub const OPCODE__OPCODE_LIGHTING_MODE: OPCODE_ = 55;
7482pub const OPCODE__OPCODE_CINEMATIC_GUI: OPCODE_ = 56;
7483pub const OPCODE__OPCODE_COUNT: OPCODE_ = 57;
7484pub type OPCODE_ = ::std::os::raw::c_int;
7485pub const PROTOCOL_VERSION__PROTOCOL_0017: PROTOCOL_VERSION_ = 4;
7486pub const PROTOCOL_VERSION__PROTOCOL_0019: PROTOCOL_VERSION_ = 5;
7487pub const PROTOCOL_VERSION__PROTOCOL_0020: PROTOCOL_VERSION_ = 6;
7488pub const PROTOCOL_VERSION__PROTOCOL_0030: PROTOCOL_VERSION_ = 7;
7489pub type PROTOCOL_VERSION_ = ::std::os::raw::c_int;
7490pub type Net_Handler = ::std::option::Option<unsafe extern "C" fn(data: *mut cc_uint8)>;
7491#[repr(C)]
7492#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7493pub struct _ProtocolData {
7494    pub Sizes: [cc_uint16; 256usize],
7495    pub Handlers: [Net_Handler; 256usize],
7496}
7497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7498const _: () = {
7499    ["Size of _ProtocolData"][::std::mem::size_of::<_ProtocolData>() - 2560usize];
7500    ["Alignment of _ProtocolData"][::std::mem::align_of::<_ProtocolData>() - 8usize];
7501    ["Offset of field: _ProtocolData::Sizes"]
7502        [::std::mem::offset_of!(_ProtocolData, Sizes) - 0usize];
7503    ["Offset of field: _ProtocolData::Handlers"]
7504        [::std::mem::offset_of!(_ProtocolData, Handlers) - 512usize];
7505};
7506#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
7507    pub static mut Protocol: _ProtocolData;
7508}
7509unsafe extern "C" {
7510    pub fn CPE_SendPluginMessage(channel: cc_uint8, data: *mut cc_uint8);
7511}
7512#[repr(C)]
7513#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7514pub struct Queue {
7515    pub entries: *mut cc_uint8,
7516    pub structSize: ::std::os::raw::c_int,
7517    pub capacity: ::std::os::raw::c_int,
7518    pub mask: ::std::os::raw::c_int,
7519    pub count: ::std::os::raw::c_int,
7520    pub head: ::std::os::raw::c_int,
7521    pub tail: ::std::os::raw::c_int,
7522}
7523#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7524const _: () = {
7525    ["Size of Queue"][::std::mem::size_of::<Queue>() - 32usize];
7526    ["Alignment of Queue"][::std::mem::align_of::<Queue>() - 8usize];
7527    ["Offset of field: Queue::entries"][::std::mem::offset_of!(Queue, entries) - 0usize];
7528    ["Offset of field: Queue::structSize"][::std::mem::offset_of!(Queue, structSize) - 8usize];
7529    ["Offset of field: Queue::capacity"][::std::mem::offset_of!(Queue, capacity) - 12usize];
7530    ["Offset of field: Queue::mask"][::std::mem::offset_of!(Queue, mask) - 16usize];
7531    ["Offset of field: Queue::count"][::std::mem::offset_of!(Queue, count) - 20usize];
7532    ["Offset of field: Queue::head"][::std::mem::offset_of!(Queue, head) - 24usize];
7533    ["Offset of field: Queue::tail"][::std::mem::offset_of!(Queue, tail) - 28usize];
7534};
7535pub type FetcherErrorCallback = ::std::option::Option<unsafe extern "C" fn(req: *mut HttpRequest)>;
7536unsafe extern "C" {
7537    pub fn Selections_Add(id: cc_uint8, p1: *const IVec3, p2: *const IVec3, color: PackedCol);
7538}
7539unsafe extern "C" {
7540    pub fn Selections_Remove(id: cc_uint8);
7541}
7542#[repr(C)]
7543#[derive(Debug, Hash, PartialEq, Eq)]
7544pub struct _ServerConnectionData {
7545    pub BeginConnect: ::std::option::Option<unsafe extern "C" fn()>,
7546    pub Tick: ::std::option::Option<unsafe extern "C" fn(task: *mut ScheduledTask)>,
7547    pub SendBlock: ::std::option::Option<
7548        unsafe extern "C" fn(
7549            x: ::std::os::raw::c_int,
7550            y: ::std::os::raw::c_int,
7551            z: ::std::os::raw::c_int,
7552            old: BlockID,
7553            now: BlockID,
7554        ),
7555    >,
7556    pub SendChat: ::std::option::Option<unsafe extern "C" fn(text: *const cc_string)>,
7557    pub __Unused: ::std::option::Option<unsafe extern "C" fn()>,
7558    pub SendData:
7559        ::std::option::Option<unsafe extern "C" fn(data: *const cc_uint8, len: cc_uint32)>,
7560    pub Name: cc_string,
7561    pub MOTD: cc_string,
7562    pub AppName: cc_string,
7563    pub ___unused: *mut cc_uint8,
7564    pub IsSinglePlayer: cc_bool,
7565    pub Disconnected: cc_bool,
7566    pub SupportsExtPlayerList: cc_bool,
7567    pub SupportsPlayerClick: cc_bool,
7568    pub SupportsPartialMessages: cc_bool,
7569    pub SupportsFullCP437: cc_bool,
7570    pub Address: cc_string,
7571    pub Port: ::std::os::raw::c_int,
7572}
7573#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7574const _: () = {
7575    ["Size of _ServerConnectionData"][::std::mem::size_of::<_ServerConnectionData>() - 136usize];
7576    ["Alignment of _ServerConnectionData"]
7577        [::std::mem::align_of::<_ServerConnectionData>() - 8usize];
7578    ["Offset of field: _ServerConnectionData::BeginConnect"]
7579        [::std::mem::offset_of!(_ServerConnectionData, BeginConnect) - 0usize];
7580    ["Offset of field: _ServerConnectionData::Tick"]
7581        [::std::mem::offset_of!(_ServerConnectionData, Tick) - 8usize];
7582    ["Offset of field: _ServerConnectionData::SendBlock"]
7583        [::std::mem::offset_of!(_ServerConnectionData, SendBlock) - 16usize];
7584    ["Offset of field: _ServerConnectionData::SendChat"]
7585        [::std::mem::offset_of!(_ServerConnectionData, SendChat) - 24usize];
7586    ["Offset of field: _ServerConnectionData::__Unused"]
7587        [::std::mem::offset_of!(_ServerConnectionData, __Unused) - 32usize];
7588    ["Offset of field: _ServerConnectionData::SendData"]
7589        [::std::mem::offset_of!(_ServerConnectionData, SendData) - 40usize];
7590    ["Offset of field: _ServerConnectionData::Name"]
7591        [::std::mem::offset_of!(_ServerConnectionData, Name) - 48usize];
7592    ["Offset of field: _ServerConnectionData::MOTD"]
7593        [::std::mem::offset_of!(_ServerConnectionData, MOTD) - 64usize];
7594    ["Offset of field: _ServerConnectionData::AppName"]
7595        [::std::mem::offset_of!(_ServerConnectionData, AppName) - 80usize];
7596    ["Offset of field: _ServerConnectionData::___unused"]
7597        [::std::mem::offset_of!(_ServerConnectionData, ___unused) - 96usize];
7598    ["Offset of field: _ServerConnectionData::IsSinglePlayer"]
7599        [::std::mem::offset_of!(_ServerConnectionData, IsSinglePlayer) - 104usize];
7600    ["Offset of field: _ServerConnectionData::Disconnected"]
7601        [::std::mem::offset_of!(_ServerConnectionData, Disconnected) - 105usize];
7602    ["Offset of field: _ServerConnectionData::SupportsExtPlayerList"]
7603        [::std::mem::offset_of!(_ServerConnectionData, SupportsExtPlayerList) - 106usize];
7604    ["Offset of field: _ServerConnectionData::SupportsPlayerClick"]
7605        [::std::mem::offset_of!(_ServerConnectionData, SupportsPlayerClick) - 107usize];
7606    ["Offset of field: _ServerConnectionData::SupportsPartialMessages"]
7607        [::std::mem::offset_of!(_ServerConnectionData, SupportsPartialMessages) - 108usize];
7608    ["Offset of field: _ServerConnectionData::SupportsFullCP437"]
7609        [::std::mem::offset_of!(_ServerConnectionData, SupportsFullCP437) - 109usize];
7610    ["Offset of field: _ServerConnectionData::Address"]
7611        [::std::mem::offset_of!(_ServerConnectionData, Address) - 112usize];
7612    ["Offset of field: _ServerConnectionData::Port"]
7613        [::std::mem::offset_of!(_ServerConnectionData, Port) - 128usize];
7614};
7615#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
7616    pub static mut Server: _ServerConnectionData;
7617}
7618#[repr(C)]
7619#[derive(Copy, Clone)]
7620pub struct Stream {
7621    pub Read: ::std::option::Option<
7622        unsafe extern "C" fn(
7623            s: *mut Stream,
7624            data: *mut cc_uint8,
7625            count: cc_uint32,
7626            modified: *mut cc_uint32,
7627        ) -> cc_result,
7628    >,
7629    pub ReadU8: ::std::option::Option<
7630        unsafe extern "C" fn(s: *mut Stream, data: *mut cc_uint8) -> cc_result,
7631    >,
7632    pub Write: ::std::option::Option<
7633        unsafe extern "C" fn(
7634            s: *mut Stream,
7635            data: *const cc_uint8,
7636            count: cc_uint32,
7637            modified: *mut cc_uint32,
7638        ) -> cc_result,
7639    >,
7640    pub Skip:
7641        ::std::option::Option<unsafe extern "C" fn(s: *mut Stream, count: cc_uint32) -> cc_result>,
7642    pub Seek: ::std::option::Option<
7643        unsafe extern "C" fn(s: *mut Stream, position: cc_uint32) -> cc_result,
7644    >,
7645    pub Position: ::std::option::Option<
7646        unsafe extern "C" fn(s: *mut Stream, position: *mut cc_uint32) -> cc_result,
7647    >,
7648    pub Length: ::std::option::Option<
7649        unsafe extern "C" fn(s: *mut Stream, length: *mut cc_uint32) -> cc_result,
7650    >,
7651    pub Close: ::std::option::Option<unsafe extern "C" fn(s: *mut Stream) -> cc_result>,
7652    pub meta: Stream__bindgen_ty_1,
7653}
7654#[repr(C)]
7655#[derive(Copy, Clone)]
7656pub union Stream__bindgen_ty_1 {
7657    pub file: cc_file,
7658    pub inflate: *mut ::std::os::raw::c_void,
7659    pub mem: Stream__bindgen_ty_1__bindgen_ty_1,
7660    pub portion: Stream__bindgen_ty_1__bindgen_ty_2,
7661    pub buffered: Stream__bindgen_ty_1__bindgen_ty_3,
7662    pub crc32: Stream__bindgen_ty_1__bindgen_ty_4,
7663}
7664#[repr(C)]
7665#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7666pub struct Stream__bindgen_ty_1__bindgen_ty_1 {
7667    pub cur: *mut cc_uint8,
7668    pub left: cc_uint32,
7669    pub length: cc_uint32,
7670    pub base: *mut cc_uint8,
7671}
7672#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7673const _: () = {
7674    ["Size of Stream__bindgen_ty_1__bindgen_ty_1"]
7675        [::std::mem::size_of::<Stream__bindgen_ty_1__bindgen_ty_1>() - 24usize];
7676    ["Alignment of Stream__bindgen_ty_1__bindgen_ty_1"]
7677        [::std::mem::align_of::<Stream__bindgen_ty_1__bindgen_ty_1>() - 8usize];
7678    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_1::cur"]
7679        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_1, cur) - 0usize];
7680    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_1::left"]
7681        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_1, left) - 8usize];
7682    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_1::length"]
7683        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_1, length) - 12usize];
7684    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_1::base"]
7685        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_1, base) - 16usize];
7686};
7687#[repr(C)]
7688#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7689pub struct Stream__bindgen_ty_1__bindgen_ty_2 {
7690    pub source: *mut Stream,
7691    pub left: cc_uint32,
7692    pub length: cc_uint32,
7693}
7694#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7695const _: () = {
7696    ["Size of Stream__bindgen_ty_1__bindgen_ty_2"]
7697        [::std::mem::size_of::<Stream__bindgen_ty_1__bindgen_ty_2>() - 16usize];
7698    ["Alignment of Stream__bindgen_ty_1__bindgen_ty_2"]
7699        [::std::mem::align_of::<Stream__bindgen_ty_1__bindgen_ty_2>() - 8usize];
7700    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_2::source"]
7701        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_2, source) - 0usize];
7702    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_2::left"]
7703        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_2, left) - 8usize];
7704    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_2::length"]
7705        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_2, length) - 12usize];
7706};
7707#[repr(C)]
7708#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7709pub struct Stream__bindgen_ty_1__bindgen_ty_3 {
7710    pub cur: *mut cc_uint8,
7711    pub left: cc_uint32,
7712    pub length: cc_uint32,
7713    pub base: *mut cc_uint8,
7714    pub source: *mut Stream,
7715    pub end: cc_uint32,
7716}
7717#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7718const _: () = {
7719    ["Size of Stream__bindgen_ty_1__bindgen_ty_3"]
7720        [::std::mem::size_of::<Stream__bindgen_ty_1__bindgen_ty_3>() - 40usize];
7721    ["Alignment of Stream__bindgen_ty_1__bindgen_ty_3"]
7722        [::std::mem::align_of::<Stream__bindgen_ty_1__bindgen_ty_3>() - 8usize];
7723    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::cur"]
7724        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, cur) - 0usize];
7725    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::left"]
7726        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, left) - 8usize];
7727    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::length"]
7728        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, length) - 12usize];
7729    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::base"]
7730        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, base) - 16usize];
7731    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::source"]
7732        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, source) - 24usize];
7733    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_3::end"]
7734        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_3, end) - 32usize];
7735};
7736#[repr(C)]
7737#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7738pub struct Stream__bindgen_ty_1__bindgen_ty_4 {
7739    pub source: *mut Stream,
7740    pub crc32: cc_uint32,
7741}
7742#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7743const _: () = {
7744    ["Size of Stream__bindgen_ty_1__bindgen_ty_4"]
7745        [::std::mem::size_of::<Stream__bindgen_ty_1__bindgen_ty_4>() - 16usize];
7746    ["Alignment of Stream__bindgen_ty_1__bindgen_ty_4"]
7747        [::std::mem::align_of::<Stream__bindgen_ty_1__bindgen_ty_4>() - 8usize];
7748    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_4::source"]
7749        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_4, source) - 0usize];
7750    ["Offset of field: Stream__bindgen_ty_1__bindgen_ty_4::crc32"]
7751        [::std::mem::offset_of!(Stream__bindgen_ty_1__bindgen_ty_4, crc32) - 8usize];
7752};
7753#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7754const _: () = {
7755    ["Size of Stream__bindgen_ty_1"][::std::mem::size_of::<Stream__bindgen_ty_1>() - 40usize];
7756    ["Alignment of Stream__bindgen_ty_1"][::std::mem::align_of::<Stream__bindgen_ty_1>() - 8usize];
7757    ["Offset of field: Stream__bindgen_ty_1::file"]
7758        [::std::mem::offset_of!(Stream__bindgen_ty_1, file) - 0usize];
7759    ["Offset of field: Stream__bindgen_ty_1::inflate"]
7760        [::std::mem::offset_of!(Stream__bindgen_ty_1, inflate) - 0usize];
7761    ["Offset of field: Stream__bindgen_ty_1::mem"]
7762        [::std::mem::offset_of!(Stream__bindgen_ty_1, mem) - 0usize];
7763    ["Offset of field: Stream__bindgen_ty_1::portion"]
7764        [::std::mem::offset_of!(Stream__bindgen_ty_1, portion) - 0usize];
7765    ["Offset of field: Stream__bindgen_ty_1::buffered"]
7766        [::std::mem::offset_of!(Stream__bindgen_ty_1, buffered) - 0usize];
7767    ["Offset of field: Stream__bindgen_ty_1::crc32"]
7768        [::std::mem::offset_of!(Stream__bindgen_ty_1, crc32) - 0usize];
7769};
7770#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7771const _: () = {
7772    ["Size of Stream"][::std::mem::size_of::<Stream>() - 104usize];
7773    ["Alignment of Stream"][::std::mem::align_of::<Stream>() - 8usize];
7774    ["Offset of field: Stream::Read"][::std::mem::offset_of!(Stream, Read) - 0usize];
7775    ["Offset of field: Stream::ReadU8"][::std::mem::offset_of!(Stream, ReadU8) - 8usize];
7776    ["Offset of field: Stream::Write"][::std::mem::offset_of!(Stream, Write) - 16usize];
7777    ["Offset of field: Stream::Skip"][::std::mem::offset_of!(Stream, Skip) - 24usize];
7778    ["Offset of field: Stream::Seek"][::std::mem::offset_of!(Stream, Seek) - 32usize];
7779    ["Offset of field: Stream::Position"][::std::mem::offset_of!(Stream, Position) - 40usize];
7780    ["Offset of field: Stream::Length"][::std::mem::offset_of!(Stream, Length) - 48usize];
7781    ["Offset of field: Stream::Close"][::std::mem::offset_of!(Stream, Close) - 56usize];
7782    ["Offset of field: Stream::meta"][::std::mem::offset_of!(Stream, meta) - 64usize];
7783};
7784unsafe extern "C" {
7785    pub fn Stream_Read(s: *mut Stream, buffer: *mut cc_uint8, count: cc_uint32) -> cc_result;
7786}
7787pub type FP_Stream_Read = ::std::option::Option<
7788    unsafe extern "C" fn(s: *mut Stream, buffer: *mut cc_uint8, count: cc_uint32) -> cc_result,
7789>;
7790unsafe extern "C" {
7791    pub fn Stream_Write(s: *mut Stream, buffer: *const cc_uint8, count: cc_uint32) -> cc_result;
7792}
7793pub type FP_Stream_Write = ::std::option::Option<
7794    unsafe extern "C" fn(s: *mut Stream, buffer: *const cc_uint8, count: cc_uint32) -> cc_result,
7795>;
7796unsafe extern "C" {
7797    pub fn Stream_OpenFile(s: *mut Stream, path: *const cc_string) -> cc_result;
7798}
7799pub type FP_Stream_OpenFile = ::std::option::Option<
7800    unsafe extern "C" fn(s: *mut Stream, path: *const cc_string) -> cc_result,
7801>;
7802unsafe extern "C" {
7803    pub fn Stream_CreateFile(s: *mut Stream, path: *const cc_string) -> cc_result;
7804}
7805pub type FP_Stream_CreateFile = ::std::option::Option<
7806    unsafe extern "C" fn(s: *mut Stream, path: *const cc_string) -> cc_result,
7807>;
7808unsafe extern "C" {
7809    pub fn Stream_FromFile(s: *mut Stream, file: cc_file);
7810}
7811unsafe extern "C" {
7812    pub fn Stream_ReadonlyPortion(s: *mut Stream, source: *mut Stream, len: cc_uint32);
7813}
7814unsafe extern "C" {
7815    pub fn Stream_ReadonlyMemory(s: *mut Stream, data: *mut ::std::os::raw::c_void, len: cc_uint32);
7816}
7817unsafe extern "C" {
7818    pub fn Stream_ReadonlyBuffered(
7819        s: *mut Stream,
7820        source: *mut Stream,
7821        data: *mut ::std::os::raw::c_void,
7822        size: cc_uint32,
7823    );
7824}
7825unsafe extern "C" {
7826    pub fn Stream_ReadLine(s: *mut Stream, text: *mut cc_string) -> cc_result;
7827}
7828unsafe extern "C" {
7829    pub fn Stream_WriteLine(s: *mut Stream, text: *mut cc_string) -> cc_result;
7830}
7831pub type FallbackFont_Plotter = ::std::option::Option<
7832    unsafe extern "C" fn(
7833        x: ::std::os::raw::c_int,
7834        y: ::std::os::raw::c_int,
7835        ctx: *mut ::std::os::raw::c_void,
7836    ),
7837>;
7838pub type SysFont_RegisterCallback =
7839    ::std::option::Option<unsafe extern "C" fn(path: *const cc_string)>;
7840unsafe extern "C" {
7841    pub fn SysFonts_GetNames(buffer: *mut StringsBuffer);
7842}
7843#[repr(C)]
7844#[derive(Debug, Hash, PartialEq, Eq)]
7845pub struct _Atlas2DData {
7846    pub Bmp: Bitmap,
7847    pub TileSize: ::std::os::raw::c_int,
7848    pub RowsCount: ::std::os::raw::c_int,
7849}
7850#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7851const _: () = {
7852    ["Size of _Atlas2DData"][::std::mem::size_of::<_Atlas2DData>() - 24usize];
7853    ["Alignment of _Atlas2DData"][::std::mem::align_of::<_Atlas2DData>() - 8usize];
7854    ["Offset of field: _Atlas2DData::Bmp"][::std::mem::offset_of!(_Atlas2DData, Bmp) - 0usize];
7855    ["Offset of field: _Atlas2DData::TileSize"]
7856        [::std::mem::offset_of!(_Atlas2DData, TileSize) - 16usize];
7857    ["Offset of field: _Atlas2DData::RowsCount"]
7858        [::std::mem::offset_of!(_Atlas2DData, RowsCount) - 20usize];
7859};
7860#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
7861    pub static mut Atlas2D: _Atlas2DData;
7862}
7863#[repr(C)]
7864#[derive(Debug, Copy, Clone, PartialEq)]
7865pub struct _Atlas1DData {
7866    pub Count: ::std::os::raw::c_int,
7867    pub TilesPerAtlas: ::std::os::raw::c_int,
7868    pub Mask: ::std::os::raw::c_int,
7869    pub Shift: ::std::os::raw::c_int,
7870    pub InvTileSize: f32,
7871    pub TexIds: [GfxResourceID; 512usize],
7872}
7873#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7874const _: () = {
7875    ["Size of _Atlas1DData"][::std::mem::size_of::<_Atlas1DData>() - 4120usize];
7876    ["Alignment of _Atlas1DData"][::std::mem::align_of::<_Atlas1DData>() - 8usize];
7877    ["Offset of field: _Atlas1DData::Count"][::std::mem::offset_of!(_Atlas1DData, Count) - 0usize];
7878    ["Offset of field: _Atlas1DData::TilesPerAtlas"]
7879        [::std::mem::offset_of!(_Atlas1DData, TilesPerAtlas) - 4usize];
7880    ["Offset of field: _Atlas1DData::Mask"][::std::mem::offset_of!(_Atlas1DData, Mask) - 8usize];
7881    ["Offset of field: _Atlas1DData::Shift"][::std::mem::offset_of!(_Atlas1DData, Shift) - 12usize];
7882    ["Offset of field: _Atlas1DData::InvTileSize"]
7883        [::std::mem::offset_of!(_Atlas1DData, InvTileSize) - 16usize];
7884    ["Offset of field: _Atlas1DData::TexIds"]
7885        [::std::mem::offset_of!(_Atlas1DData, TexIds) - 24usize];
7886};
7887#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
7888    pub static mut Atlas1D: _Atlas1DData;
7889}
7890unsafe extern "C" {
7891    pub fn TexturePack_Extract(url: *const cc_string);
7892}
7893pub type DefaultZipCallback =
7894    ::std::option::Option<unsafe extern "C" fn(path: *const cc_string) -> cc_result>;
7895#[repr(C)]
7896#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7897pub struct TextureEntry {
7898    pub filename: *const ::std::os::raw::c_char,
7899    pub Callback:
7900        ::std::option::Option<unsafe extern "C" fn(stream: *mut Stream, name: *const cc_string)>,
7901    pub next: *mut TextureEntry,
7902}
7903#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7904const _: () = {
7905    ["Size of TextureEntry"][::std::mem::size_of::<TextureEntry>() - 24usize];
7906    ["Alignment of TextureEntry"][::std::mem::align_of::<TextureEntry>() - 8usize];
7907    ["Offset of field: TextureEntry::filename"]
7908        [::std::mem::offset_of!(TextureEntry, filename) - 0usize];
7909    ["Offset of field: TextureEntry::Callback"]
7910        [::std::mem::offset_of!(TextureEntry, Callback) - 8usize];
7911    ["Offset of field: TextureEntry::next"][::std::mem::offset_of!(TextureEntry, next) - 16usize];
7912};
7913#[repr(C)]
7914#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7915pub struct DateTime {
7916    pub year: ::std::os::raw::c_int,
7917    pub month: ::std::os::raw::c_int,
7918    pub day: ::std::os::raw::c_int,
7919    pub hour: ::std::os::raw::c_int,
7920    pub minute: ::std::os::raw::c_int,
7921    pub second: ::std::os::raw::c_int,
7922    pub __milli: ::std::os::raw::c_int,
7923}
7924#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7925const _: () = {
7926    ["Size of DateTime"][::std::mem::size_of::<DateTime>() - 28usize];
7927    ["Alignment of DateTime"][::std::mem::align_of::<DateTime>() - 4usize];
7928    ["Offset of field: DateTime::year"][::std::mem::offset_of!(DateTime, year) - 0usize];
7929    ["Offset of field: DateTime::month"][::std::mem::offset_of!(DateTime, month) - 4usize];
7930    ["Offset of field: DateTime::day"][::std::mem::offset_of!(DateTime, day) - 8usize];
7931    ["Offset of field: DateTime::hour"][::std::mem::offset_of!(DateTime, hour) - 12usize];
7932    ["Offset of field: DateTime::minute"][::std::mem::offset_of!(DateTime, minute) - 16usize];
7933    ["Offset of field: DateTime::second"][::std::mem::offset_of!(DateTime, second) - 20usize];
7934    ["Offset of field: DateTime::__milli"][::std::mem::offset_of!(DateTime, __milli) - 24usize];
7935};
7936pub type EntryList_Filter =
7937    ::std::option::Option<unsafe extern "C" fn(entry: *const cc_string) -> cc_bool>;
7938pub const WindowState_WINDOW_STATE_NORMAL: WindowState = 0;
7939pub const WindowState_WINDOW_STATE_FULLSCREEN: WindowState = 1;
7940pub const WindowState_WINDOW_STATE_MINIMISED: WindowState = 2;
7941pub type WindowState = ::std::os::raw::c_int;
7942pub const SoftKeyboard_SOFT_KEYBOARD_NONE: SoftKeyboard = 0;
7943pub const SoftKeyboard_SOFT_KEYBOARD_RESIZE: SoftKeyboard = 1;
7944pub const SoftKeyboard_SOFT_KEYBOARD_SHIFT: SoftKeyboard = 2;
7945pub const SoftKeyboard_SOFT_KEYBOARD_VIRTUAL: SoftKeyboard = 3;
7946pub type SoftKeyboard = ::std::os::raw::c_int;
7947pub const KeyboardType_KEYBOARD_TYPE_TEXT: KeyboardType = 0;
7948pub const KeyboardType_KEYBOARD_TYPE_NUMBER: KeyboardType = 1;
7949pub const KeyboardType_KEYBOARD_TYPE_PASSWORD: KeyboardType = 2;
7950pub const KeyboardType_KEYBOARD_TYPE_INTEGER: KeyboardType = 3;
7951pub type KeyboardType = ::std::os::raw::c_int;
7952#[repr(C)]
7953#[derive(Debug, Copy, Clone, PartialEq)]
7954pub struct _DisplayData {
7955    pub Depth: ::std::os::raw::c_int,
7956    pub ScaleX: f32,
7957    pub ScaleY: f32,
7958    pub x: ::std::os::raw::c_int,
7959    pub y: ::std::os::raw::c_int,
7960    pub Width: ::std::os::raw::c_int,
7961    pub Height: ::std::os::raw::c_int,
7962    pub DPIScaling: cc_bool,
7963    pub ShowingSoftKeyboard: cc_bool,
7964    pub CursorVisible: cc_bool,
7965    pub FullRedraw: cc_bool,
7966    pub ContentOffsetX: ::std::os::raw::c_int,
7967    pub ContentOffsetY: ::std::os::raw::c_int,
7968}
7969#[allow(clippy::unnecessary_operation, clippy::identity_op)]
7970const _: () = {
7971    ["Size of _DisplayData"][::std::mem::size_of::<_DisplayData>() - 40usize];
7972    ["Alignment of _DisplayData"][::std::mem::align_of::<_DisplayData>() - 4usize];
7973    ["Offset of field: _DisplayData::Depth"][::std::mem::offset_of!(_DisplayData, Depth) - 0usize];
7974    ["Offset of field: _DisplayData::ScaleX"]
7975        [::std::mem::offset_of!(_DisplayData, ScaleX) - 4usize];
7976    ["Offset of field: _DisplayData::ScaleY"]
7977        [::std::mem::offset_of!(_DisplayData, ScaleY) - 8usize];
7978    ["Offset of field: _DisplayData::x"][::std::mem::offset_of!(_DisplayData, x) - 12usize];
7979    ["Offset of field: _DisplayData::y"][::std::mem::offset_of!(_DisplayData, y) - 16usize];
7980    ["Offset of field: _DisplayData::Width"][::std::mem::offset_of!(_DisplayData, Width) - 20usize];
7981    ["Offset of field: _DisplayData::Height"]
7982        [::std::mem::offset_of!(_DisplayData, Height) - 24usize];
7983    ["Offset of field: _DisplayData::DPIScaling"]
7984        [::std::mem::offset_of!(_DisplayData, DPIScaling) - 28usize];
7985    ["Offset of field: _DisplayData::ShowingSoftKeyboard"]
7986        [::std::mem::offset_of!(_DisplayData, ShowingSoftKeyboard) - 29usize];
7987    ["Offset of field: _DisplayData::CursorVisible"]
7988        [::std::mem::offset_of!(_DisplayData, CursorVisible) - 30usize];
7989    ["Offset of field: _DisplayData::FullRedraw"]
7990        [::std::mem::offset_of!(_DisplayData, FullRedraw) - 31usize];
7991    ["Offset of field: _DisplayData::ContentOffsetX"]
7992        [::std::mem::offset_of!(_DisplayData, ContentOffsetX) - 32usize];
7993    ["Offset of field: _DisplayData::ContentOffsetY"]
7994        [::std::mem::offset_of!(_DisplayData, ContentOffsetY) - 36usize];
7995};
7996#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
7997    pub static mut DisplayInfo: _DisplayData;
7998}
7999#[repr(C)]
8000#[derive(Copy, Clone)]
8001pub struct cc_window {
8002    pub Handle: cc_pointer,
8003    pub Width: ::std::os::raw::c_int,
8004    pub Height: ::std::os::raw::c_int,
8005    pub Exists: cc_bool,
8006    pub Focused: cc_bool,
8007    pub SoftKeyboard: cc_uint8,
8008    pub Inactive: cc_bool,
8009    pub SoftKeyboardFocus: cc_bool,
8010    pub SoftKeyboardInstant: cc_uint8,
8011    pub UIScaleX: f32,
8012    pub UIScaleY: f32,
8013}
8014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8015const _: () = {
8016    ["Size of cc_window"][::std::mem::size_of::<cc_window>() - 32usize];
8017    ["Alignment of cc_window"][::std::mem::align_of::<cc_window>() - 8usize];
8018    ["Offset of field: cc_window::Handle"][::std::mem::offset_of!(cc_window, Handle) - 0usize];
8019    ["Offset of field: cc_window::Width"][::std::mem::offset_of!(cc_window, Width) - 8usize];
8020    ["Offset of field: cc_window::Height"][::std::mem::offset_of!(cc_window, Height) - 12usize];
8021    ["Offset of field: cc_window::Exists"][::std::mem::offset_of!(cc_window, Exists) - 16usize];
8022    ["Offset of field: cc_window::Focused"][::std::mem::offset_of!(cc_window, Focused) - 17usize];
8023    ["Offset of field: cc_window::SoftKeyboard"]
8024        [::std::mem::offset_of!(cc_window, SoftKeyboard) - 18usize];
8025    ["Offset of field: cc_window::Inactive"][::std::mem::offset_of!(cc_window, Inactive) - 19usize];
8026    ["Offset of field: cc_window::SoftKeyboardFocus"]
8027        [::std::mem::offset_of!(cc_window, SoftKeyboardFocus) - 20usize];
8028    ["Offset of field: cc_window::SoftKeyboardInstant"]
8029        [::std::mem::offset_of!(cc_window, SoftKeyboardInstant) - 21usize];
8030    ["Offset of field: cc_window::UIScaleX"][::std::mem::offset_of!(cc_window, UIScaleX) - 24usize];
8031    ["Offset of field: cc_window::UIScaleY"][::std::mem::offset_of!(cc_window, UIScaleY) - 28usize];
8032};
8033#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
8034    pub static mut WindowInfo: cc_window;
8035}
8036unsafe extern "C" {
8037    pub fn Window_SetTitle(title: *const cc_string);
8038}
8039unsafe extern "C" {
8040    pub fn Clipboard_GetText(value: *mut cc_string);
8041}
8042unsafe extern "C" {
8043    pub fn Clipboard_SetText(value: *const cc_string);
8044}
8045unsafe extern "C" {
8046    pub fn Window_ShowDialog(
8047        title: *const ::std::os::raw::c_char,
8048        msg: *const ::std::os::raw::c_char,
8049    );
8050}
8051pub type FileDialogCallback = ::std::option::Option<unsafe extern "C" fn(path: *const cc_string)>;
8052#[repr(C)]
8053#[derive(Debug, Hash, PartialEq, Eq)]
8054pub struct SaveFileDialogArgs {
8055    pub filters: *const *const ::std::os::raw::c_char,
8056    pub titles: *const *const ::std::os::raw::c_char,
8057    pub defaultName: cc_string,
8058    pub Callback: FileDialogCallback,
8059}
8060#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8061const _: () = {
8062    ["Size of SaveFileDialogArgs"][::std::mem::size_of::<SaveFileDialogArgs>() - 40usize];
8063    ["Alignment of SaveFileDialogArgs"][::std::mem::align_of::<SaveFileDialogArgs>() - 8usize];
8064    ["Offset of field: SaveFileDialogArgs::filters"]
8065        [::std::mem::offset_of!(SaveFileDialogArgs, filters) - 0usize];
8066    ["Offset of field: SaveFileDialogArgs::titles"]
8067        [::std::mem::offset_of!(SaveFileDialogArgs, titles) - 8usize];
8068    ["Offset of field: SaveFileDialogArgs::defaultName"]
8069        [::std::mem::offset_of!(SaveFileDialogArgs, defaultName) - 16usize];
8070    ["Offset of field: SaveFileDialogArgs::Callback"]
8071        [::std::mem::offset_of!(SaveFileDialogArgs, Callback) - 32usize];
8072};
8073#[repr(C)]
8074#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8075pub struct OpenFileDialogArgs {
8076    pub description: *const ::std::os::raw::c_char,
8077    pub filters: *const *const ::std::os::raw::c_char,
8078    pub Callback: FileDialogCallback,
8079    pub uploadAction: ::std::os::raw::c_int,
8080    pub uploadFolder: *const ::std::os::raw::c_char,
8081}
8082#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8083const _: () = {
8084    ["Size of OpenFileDialogArgs"][::std::mem::size_of::<OpenFileDialogArgs>() - 40usize];
8085    ["Alignment of OpenFileDialogArgs"][::std::mem::align_of::<OpenFileDialogArgs>() - 8usize];
8086    ["Offset of field: OpenFileDialogArgs::description"]
8087        [::std::mem::offset_of!(OpenFileDialogArgs, description) - 0usize];
8088    ["Offset of field: OpenFileDialogArgs::filters"]
8089        [::std::mem::offset_of!(OpenFileDialogArgs, filters) - 8usize];
8090    ["Offset of field: OpenFileDialogArgs::Callback"]
8091        [::std::mem::offset_of!(OpenFileDialogArgs, Callback) - 16usize];
8092    ["Offset of field: OpenFileDialogArgs::uploadAction"]
8093        [::std::mem::offset_of!(OpenFileDialogArgs, uploadAction) - 24usize];
8094    ["Offset of field: OpenFileDialogArgs::uploadFolder"]
8095        [::std::mem::offset_of!(OpenFileDialogArgs, uploadFolder) - 32usize];
8096};
8097#[repr(C)]
8098#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8099pub struct OpenKeyboardArgs {
8100    pub text: *const cc_string,
8101    pub type_: ::std::os::raw::c_int,
8102    pub yOffset: ::std::os::raw::c_int,
8103    pub placeholder: *const ::std::os::raw::c_char,
8104    pub opaque: cc_bool,
8105    pub multiline: cc_bool,
8106    pub device: *mut InputDevice,
8107}
8108#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8109const _: () = {
8110    ["Size of OpenKeyboardArgs"][::std::mem::size_of::<OpenKeyboardArgs>() - 40usize];
8111    ["Alignment of OpenKeyboardArgs"][::std::mem::align_of::<OpenKeyboardArgs>() - 8usize];
8112    ["Offset of field: OpenKeyboardArgs::text"]
8113        [::std::mem::offset_of!(OpenKeyboardArgs, text) - 0usize];
8114    ["Offset of field: OpenKeyboardArgs::type_"]
8115        [::std::mem::offset_of!(OpenKeyboardArgs, type_) - 8usize];
8116    ["Offset of field: OpenKeyboardArgs::yOffset"]
8117        [::std::mem::offset_of!(OpenKeyboardArgs, yOffset) - 12usize];
8118    ["Offset of field: OpenKeyboardArgs::placeholder"]
8119        [::std::mem::offset_of!(OpenKeyboardArgs, placeholder) - 16usize];
8120    ["Offset of field: OpenKeyboardArgs::opaque"]
8121        [::std::mem::offset_of!(OpenKeyboardArgs, opaque) - 24usize];
8122    ["Offset of field: OpenKeyboardArgs::multiline"]
8123        [::std::mem::offset_of!(OpenKeyboardArgs, multiline) - 25usize];
8124    ["Offset of field: OpenKeyboardArgs::device"]
8125        [::std::mem::offset_of!(OpenKeyboardArgs, device) - 32usize];
8126};
8127#[repr(C)]
8128#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8129pub struct KBLayout {
8130    pub numRows: ::std::os::raw::c_int,
8131    pub cellsPerRow: ::std::os::raw::c_int,
8132    pub rowWidth: ::std::os::raw::c_int,
8133    pub lower: *mut *const ::std::os::raw::c_char,
8134    pub upper: *mut *const ::std::os::raw::c_char,
8135    pub table: *mut *const ::std::os::raw::c_char,
8136    pub behaviour: *const cc_uint8,
8137}
8138#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8139const _: () = {
8140    ["Size of KBLayout"][::std::mem::size_of::<KBLayout>() - 48usize];
8141    ["Alignment of KBLayout"][::std::mem::align_of::<KBLayout>() - 8usize];
8142    ["Offset of field: KBLayout::numRows"][::std::mem::offset_of!(KBLayout, numRows) - 0usize];
8143    ["Offset of field: KBLayout::cellsPerRow"]
8144        [::std::mem::offset_of!(KBLayout, cellsPerRow) - 4usize];
8145    ["Offset of field: KBLayout::rowWidth"][::std::mem::offset_of!(KBLayout, rowWidth) - 8usize];
8146    ["Offset of field: KBLayout::lower"][::std::mem::offset_of!(KBLayout, lower) - 16usize];
8147    ["Offset of field: KBLayout::upper"][::std::mem::offset_of!(KBLayout, upper) - 24usize];
8148    ["Offset of field: KBLayout::table"][::std::mem::offset_of!(KBLayout, table) - 32usize];
8149    ["Offset of field: KBLayout::behaviour"][::std::mem::offset_of!(KBLayout, behaviour) - 40usize];
8150};
8151#[repr(C)]
8152#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8153pub struct OggState {
8154    pub cur: *mut cc_uint8,
8155    pub left: cc_uint32,
8156    pub last: cc_uint32,
8157    pub source: *mut Stream,
8158    pub segmentsRead: ::std::os::raw::c_int,
8159    pub numSegments: ::std::os::raw::c_int,
8160    pub buffer: [cc_uint8; 65280usize],
8161    pub segments: [cc_uint8; 255usize],
8162}
8163#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8164const _: () = {
8165    ["Size of OggState"][::std::mem::size_of::<OggState>() - 65568usize];
8166    ["Alignment of OggState"][::std::mem::align_of::<OggState>() - 8usize];
8167    ["Offset of field: OggState::cur"][::std::mem::offset_of!(OggState, cur) - 0usize];
8168    ["Offset of field: OggState::left"][::std::mem::offset_of!(OggState, left) - 8usize];
8169    ["Offset of field: OggState::last"][::std::mem::offset_of!(OggState, last) - 12usize];
8170    ["Offset of field: OggState::source"][::std::mem::offset_of!(OggState, source) - 16usize];
8171    ["Offset of field: OggState::segmentsRead"]
8172        [::std::mem::offset_of!(OggState, segmentsRead) - 24usize];
8173    ["Offset of field: OggState::numSegments"]
8174        [::std::mem::offset_of!(OggState, numSegments) - 28usize];
8175    ["Offset of field: OggState::buffer"][::std::mem::offset_of!(OggState, buffer) - 32usize];
8176    ["Offset of field: OggState::segments"]
8177        [::std::mem::offset_of!(OggState, segments) - 65312usize];
8178};
8179#[repr(C)]
8180#[derive(Debug, Copy, Clone)]
8181pub struct Codebook {
8182    _unused: [u8; 0],
8183}
8184#[repr(C)]
8185#[derive(Debug, Copy, Clone)]
8186pub struct Floor {
8187    _unused: [u8; 0],
8188}
8189#[repr(C)]
8190#[derive(Debug, Copy, Clone)]
8191pub struct Residue {
8192    _unused: [u8; 0],
8193}
8194#[repr(C)]
8195#[derive(Debug, Copy, Clone)]
8196pub struct Mapping {
8197    _unused: [u8; 0],
8198}
8199#[repr(C)]
8200#[derive(Debug, Copy, Clone)]
8201pub struct Mode {
8202    _unused: [u8; 0],
8203}
8204#[repr(C)]
8205#[derive(Debug, Copy, Clone, PartialEq)]
8206pub struct imdct_state {
8207    pub n: ::std::os::raw::c_int,
8208    pub log2_n: ::std::os::raw::c_int,
8209    pub a: [f32; 4096usize],
8210    pub b: [f32; 4096usize],
8211    pub c: [f32; 2048usize],
8212    pub reversed: [cc_uint32; 1024usize],
8213}
8214#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8215const _: () = {
8216    ["Size of imdct_state"][::std::mem::size_of::<imdct_state>() - 45064usize];
8217    ["Alignment of imdct_state"][::std::mem::align_of::<imdct_state>() - 4usize];
8218    ["Offset of field: imdct_state::n"][::std::mem::offset_of!(imdct_state, n) - 0usize];
8219    ["Offset of field: imdct_state::log2_n"][::std::mem::offset_of!(imdct_state, log2_n) - 4usize];
8220    ["Offset of field: imdct_state::a"][::std::mem::offset_of!(imdct_state, a) - 8usize];
8221    ["Offset of field: imdct_state::b"][::std::mem::offset_of!(imdct_state, b) - 16392usize];
8222    ["Offset of field: imdct_state::c"][::std::mem::offset_of!(imdct_state, c) - 32776usize];
8223    ["Offset of field: imdct_state::reversed"]
8224        [::std::mem::offset_of!(imdct_state, reversed) - 40968usize];
8225};
8226#[repr(C)]
8227#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8228pub struct VorbisWindow {
8229    pub Prev: *mut f32,
8230    pub Cur: *mut f32,
8231}
8232#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8233const _: () = {
8234    ["Size of VorbisWindow"][::std::mem::size_of::<VorbisWindow>() - 16usize];
8235    ["Alignment of VorbisWindow"][::std::mem::align_of::<VorbisWindow>() - 8usize];
8236    ["Offset of field: VorbisWindow::Prev"][::std::mem::offset_of!(VorbisWindow, Prev) - 0usize];
8237    ["Offset of field: VorbisWindow::Cur"][::std::mem::offset_of!(VorbisWindow, Cur) - 8usize];
8238};
8239#[repr(C)]
8240#[derive(Debug, Copy, Clone, PartialEq)]
8241pub struct VorbisState {
8242    pub Bits: cc_uint32,
8243    pub NumBits: cc_uint32,
8244    pub source: *mut OggState,
8245    pub channels: cc_uint8,
8246    pub modeNumBits: cc_uint8,
8247    pub curBlockSize: cc_uint16,
8248    pub prevBlockSize: cc_uint16,
8249    pub dataSize: cc_uint16,
8250    pub numCodebooks: cc_uint16,
8251    pub sampleRate: ::std::os::raw::c_int,
8252    pub blockSizes: [::std::os::raw::c_int; 2usize],
8253    pub temp: *mut f32,
8254    pub values: [*mut f32; 2usize],
8255    pub prevOutput: [*mut f32; 8usize],
8256    pub curOutput: [*mut f32; 8usize],
8257    pub codebooks: *mut Codebook,
8258    pub floors: *mut Floor,
8259    pub residues: *mut Residue,
8260    pub mappings: *mut Mapping,
8261    pub modes: *mut Mode,
8262    pub windowRaw: *mut f32,
8263    pub windows: [VorbisWindow; 2usize],
8264    pub imdct: [imdct_state; 2usize],
8265}
8266#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8267const _: () = {
8268    ["Size of VorbisState"][::std::mem::size_of::<VorbisState>() - 90400usize];
8269    ["Alignment of VorbisState"][::std::mem::align_of::<VorbisState>() - 8usize];
8270    ["Offset of field: VorbisState::Bits"][::std::mem::offset_of!(VorbisState, Bits) - 0usize];
8271    ["Offset of field: VorbisState::NumBits"]
8272        [::std::mem::offset_of!(VorbisState, NumBits) - 4usize];
8273    ["Offset of field: VorbisState::source"][::std::mem::offset_of!(VorbisState, source) - 8usize];
8274    ["Offset of field: VorbisState::channels"]
8275        [::std::mem::offset_of!(VorbisState, channels) - 16usize];
8276    ["Offset of field: VorbisState::modeNumBits"]
8277        [::std::mem::offset_of!(VorbisState, modeNumBits) - 17usize];
8278    ["Offset of field: VorbisState::curBlockSize"]
8279        [::std::mem::offset_of!(VorbisState, curBlockSize) - 18usize];
8280    ["Offset of field: VorbisState::prevBlockSize"]
8281        [::std::mem::offset_of!(VorbisState, prevBlockSize) - 20usize];
8282    ["Offset of field: VorbisState::dataSize"]
8283        [::std::mem::offset_of!(VorbisState, dataSize) - 22usize];
8284    ["Offset of field: VorbisState::numCodebooks"]
8285        [::std::mem::offset_of!(VorbisState, numCodebooks) - 24usize];
8286    ["Offset of field: VorbisState::sampleRate"]
8287        [::std::mem::offset_of!(VorbisState, sampleRate) - 28usize];
8288    ["Offset of field: VorbisState::blockSizes"]
8289        [::std::mem::offset_of!(VorbisState, blockSizes) - 32usize];
8290    ["Offset of field: VorbisState::temp"][::std::mem::offset_of!(VorbisState, temp) - 40usize];
8291    ["Offset of field: VorbisState::values"][::std::mem::offset_of!(VorbisState, values) - 48usize];
8292    ["Offset of field: VorbisState::prevOutput"]
8293        [::std::mem::offset_of!(VorbisState, prevOutput) - 64usize];
8294    ["Offset of field: VorbisState::curOutput"]
8295        [::std::mem::offset_of!(VorbisState, curOutput) - 128usize];
8296    ["Offset of field: VorbisState::codebooks"]
8297        [::std::mem::offset_of!(VorbisState, codebooks) - 192usize];
8298    ["Offset of field: VorbisState::floors"]
8299        [::std::mem::offset_of!(VorbisState, floors) - 200usize];
8300    ["Offset of field: VorbisState::residues"]
8301        [::std::mem::offset_of!(VorbisState, residues) - 208usize];
8302    ["Offset of field: VorbisState::mappings"]
8303        [::std::mem::offset_of!(VorbisState, mappings) - 216usize];
8304    ["Offset of field: VorbisState::modes"][::std::mem::offset_of!(VorbisState, modes) - 224usize];
8305    ["Offset of field: VorbisState::windowRaw"]
8306        [::std::mem::offset_of!(VorbisState, windowRaw) - 232usize];
8307    ["Offset of field: VorbisState::windows"]
8308        [::std::mem::offset_of!(VorbisState, windows) - 240usize];
8309    ["Offset of field: VorbisState::imdct"][::std::mem::offset_of!(VorbisState, imdct) - 272usize];
8310};
8311#[repr(C)]
8312pub struct TextWidget {
8313    pub VTABLE: *const WidgetVTABLE,
8314    pub x: ::std::os::raw::c_int,
8315    pub y: ::std::os::raw::c_int,
8316    pub width: ::std::os::raw::c_int,
8317    pub height: ::std::os::raw::c_int,
8318    pub active: cc_bool,
8319    pub flags: cc_uint8,
8320    pub horAnchor: cc_uint8,
8321    pub verAnchor: cc_uint8,
8322    pub xOffset: ::std::os::raw::c_int,
8323    pub yOffset: ::std::os::raw::c_int,
8324    pub MenuClick: Widget_LeftClick,
8325    pub meta: cc_pointer,
8326    pub tex: Texture,
8327    pub color: PackedCol,
8328}
8329#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8330const _: () = {
8331    ["Size of TextWidget"][::std::mem::size_of::<TextWidget>() - 96usize];
8332    ["Alignment of TextWidget"][::std::mem::align_of::<TextWidget>() - 8usize];
8333    ["Offset of field: TextWidget::VTABLE"][::std::mem::offset_of!(TextWidget, VTABLE) - 0usize];
8334    ["Offset of field: TextWidget::x"][::std::mem::offset_of!(TextWidget, x) - 8usize];
8335    ["Offset of field: TextWidget::y"][::std::mem::offset_of!(TextWidget, y) - 12usize];
8336    ["Offset of field: TextWidget::width"][::std::mem::offset_of!(TextWidget, width) - 16usize];
8337    ["Offset of field: TextWidget::height"][::std::mem::offset_of!(TextWidget, height) - 20usize];
8338    ["Offset of field: TextWidget::active"][::std::mem::offset_of!(TextWidget, active) - 24usize];
8339    ["Offset of field: TextWidget::flags"][::std::mem::offset_of!(TextWidget, flags) - 25usize];
8340    ["Offset of field: TextWidget::horAnchor"]
8341        [::std::mem::offset_of!(TextWidget, horAnchor) - 26usize];
8342    ["Offset of field: TextWidget::verAnchor"]
8343        [::std::mem::offset_of!(TextWidget, verAnchor) - 27usize];
8344    ["Offset of field: TextWidget::xOffset"][::std::mem::offset_of!(TextWidget, xOffset) - 28usize];
8345    ["Offset of field: TextWidget::yOffset"][::std::mem::offset_of!(TextWidget, yOffset) - 32usize];
8346    ["Offset of field: TextWidget::MenuClick"]
8347        [::std::mem::offset_of!(TextWidget, MenuClick) - 40usize];
8348    ["Offset of field: TextWidget::meta"][::std::mem::offset_of!(TextWidget, meta) - 48usize];
8349    ["Offset of field: TextWidget::tex"][::std::mem::offset_of!(TextWidget, tex) - 56usize];
8350    ["Offset of field: TextWidget::color"][::std::mem::offset_of!(TextWidget, color) - 88usize];
8351};
8352#[repr(C)]
8353pub struct ButtonWidget {
8354    pub VTABLE: *const WidgetVTABLE,
8355    pub x: ::std::os::raw::c_int,
8356    pub y: ::std::os::raw::c_int,
8357    pub width: ::std::os::raw::c_int,
8358    pub height: ::std::os::raw::c_int,
8359    pub active: cc_bool,
8360    pub flags: cc_uint8,
8361    pub horAnchor: cc_uint8,
8362    pub verAnchor: cc_uint8,
8363    pub xOffset: ::std::os::raw::c_int,
8364    pub yOffset: ::std::os::raw::c_int,
8365    pub MenuClick: Widget_LeftClick,
8366    pub meta: cc_pointer,
8367    pub tex: Texture,
8368    pub color: PackedCol,
8369    pub minWidth: ::std::os::raw::c_int,
8370    pub minHeight: ::std::os::raw::c_int,
8371    pub optName: *const ::std::os::raw::c_char,
8372}
8373#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8374const _: () = {
8375    ["Size of ButtonWidget"][::std::mem::size_of::<ButtonWidget>() - 112usize];
8376    ["Alignment of ButtonWidget"][::std::mem::align_of::<ButtonWidget>() - 8usize];
8377    ["Offset of field: ButtonWidget::VTABLE"]
8378        [::std::mem::offset_of!(ButtonWidget, VTABLE) - 0usize];
8379    ["Offset of field: ButtonWidget::x"][::std::mem::offset_of!(ButtonWidget, x) - 8usize];
8380    ["Offset of field: ButtonWidget::y"][::std::mem::offset_of!(ButtonWidget, y) - 12usize];
8381    ["Offset of field: ButtonWidget::width"][::std::mem::offset_of!(ButtonWidget, width) - 16usize];
8382    ["Offset of field: ButtonWidget::height"]
8383        [::std::mem::offset_of!(ButtonWidget, height) - 20usize];
8384    ["Offset of field: ButtonWidget::active"]
8385        [::std::mem::offset_of!(ButtonWidget, active) - 24usize];
8386    ["Offset of field: ButtonWidget::flags"][::std::mem::offset_of!(ButtonWidget, flags) - 25usize];
8387    ["Offset of field: ButtonWidget::horAnchor"]
8388        [::std::mem::offset_of!(ButtonWidget, horAnchor) - 26usize];
8389    ["Offset of field: ButtonWidget::verAnchor"]
8390        [::std::mem::offset_of!(ButtonWidget, verAnchor) - 27usize];
8391    ["Offset of field: ButtonWidget::xOffset"]
8392        [::std::mem::offset_of!(ButtonWidget, xOffset) - 28usize];
8393    ["Offset of field: ButtonWidget::yOffset"]
8394        [::std::mem::offset_of!(ButtonWidget, yOffset) - 32usize];
8395    ["Offset of field: ButtonWidget::MenuClick"]
8396        [::std::mem::offset_of!(ButtonWidget, MenuClick) - 40usize];
8397    ["Offset of field: ButtonWidget::meta"][::std::mem::offset_of!(ButtonWidget, meta) - 48usize];
8398    ["Offset of field: ButtonWidget::tex"][::std::mem::offset_of!(ButtonWidget, tex) - 56usize];
8399    ["Offset of field: ButtonWidget::color"][::std::mem::offset_of!(ButtonWidget, color) - 88usize];
8400    ["Offset of field: ButtonWidget::minWidth"]
8401        [::std::mem::offset_of!(ButtonWidget, minWidth) - 92usize];
8402    ["Offset of field: ButtonWidget::minHeight"]
8403        [::std::mem::offset_of!(ButtonWidget, minHeight) - 96usize];
8404    ["Offset of field: ButtonWidget::optName"]
8405        [::std::mem::offset_of!(ButtonWidget, optName) - 104usize];
8406};
8407#[repr(C)]
8408#[derive(Copy, Clone)]
8409pub struct ScrollbarWidget {
8410    pub VTABLE: *const WidgetVTABLE,
8411    pub x: ::std::os::raw::c_int,
8412    pub y: ::std::os::raw::c_int,
8413    pub width: ::std::os::raw::c_int,
8414    pub height: ::std::os::raw::c_int,
8415    pub active: cc_bool,
8416    pub flags: cc_uint8,
8417    pub horAnchor: cc_uint8,
8418    pub verAnchor: cc_uint8,
8419    pub xOffset: ::std::os::raw::c_int,
8420    pub yOffset: ::std::os::raw::c_int,
8421    pub MenuClick: Widget_LeftClick,
8422    pub meta: cc_pointer,
8423    pub topRow: ::std::os::raw::c_int,
8424    pub rowsTotal: ::std::os::raw::c_int,
8425    pub rowsVisible: ::std::os::raw::c_int,
8426    pub scrollingAcc: f32,
8427    pub dragOffset: ::std::os::raw::c_int,
8428    pub draggingId: ::std::os::raw::c_int,
8429    pub padding: ::std::os::raw::c_int,
8430    pub borderX: ::std::os::raw::c_int,
8431    pub borderY: ::std::os::raw::c_int,
8432    pub nubsWidth: ::std::os::raw::c_int,
8433    pub offsets: [::std::os::raw::c_int; 3usize],
8434}
8435#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8436const _: () = {
8437    ["Size of ScrollbarWidget"][::std::mem::size_of::<ScrollbarWidget>() - 112usize];
8438    ["Alignment of ScrollbarWidget"][::std::mem::align_of::<ScrollbarWidget>() - 8usize];
8439    ["Offset of field: ScrollbarWidget::VTABLE"]
8440        [::std::mem::offset_of!(ScrollbarWidget, VTABLE) - 0usize];
8441    ["Offset of field: ScrollbarWidget::x"][::std::mem::offset_of!(ScrollbarWidget, x) - 8usize];
8442    ["Offset of field: ScrollbarWidget::y"][::std::mem::offset_of!(ScrollbarWidget, y) - 12usize];
8443    ["Offset of field: ScrollbarWidget::width"]
8444        [::std::mem::offset_of!(ScrollbarWidget, width) - 16usize];
8445    ["Offset of field: ScrollbarWidget::height"]
8446        [::std::mem::offset_of!(ScrollbarWidget, height) - 20usize];
8447    ["Offset of field: ScrollbarWidget::active"]
8448        [::std::mem::offset_of!(ScrollbarWidget, active) - 24usize];
8449    ["Offset of field: ScrollbarWidget::flags"]
8450        [::std::mem::offset_of!(ScrollbarWidget, flags) - 25usize];
8451    ["Offset of field: ScrollbarWidget::horAnchor"]
8452        [::std::mem::offset_of!(ScrollbarWidget, horAnchor) - 26usize];
8453    ["Offset of field: ScrollbarWidget::verAnchor"]
8454        [::std::mem::offset_of!(ScrollbarWidget, verAnchor) - 27usize];
8455    ["Offset of field: ScrollbarWidget::xOffset"]
8456        [::std::mem::offset_of!(ScrollbarWidget, xOffset) - 28usize];
8457    ["Offset of field: ScrollbarWidget::yOffset"]
8458        [::std::mem::offset_of!(ScrollbarWidget, yOffset) - 32usize];
8459    ["Offset of field: ScrollbarWidget::MenuClick"]
8460        [::std::mem::offset_of!(ScrollbarWidget, MenuClick) - 40usize];
8461    ["Offset of field: ScrollbarWidget::meta"]
8462        [::std::mem::offset_of!(ScrollbarWidget, meta) - 48usize];
8463    ["Offset of field: ScrollbarWidget::topRow"]
8464        [::std::mem::offset_of!(ScrollbarWidget, topRow) - 56usize];
8465    ["Offset of field: ScrollbarWidget::rowsTotal"]
8466        [::std::mem::offset_of!(ScrollbarWidget, rowsTotal) - 60usize];
8467    ["Offset of field: ScrollbarWidget::rowsVisible"]
8468        [::std::mem::offset_of!(ScrollbarWidget, rowsVisible) - 64usize];
8469    ["Offset of field: ScrollbarWidget::scrollingAcc"]
8470        [::std::mem::offset_of!(ScrollbarWidget, scrollingAcc) - 68usize];
8471    ["Offset of field: ScrollbarWidget::dragOffset"]
8472        [::std::mem::offset_of!(ScrollbarWidget, dragOffset) - 72usize];
8473    ["Offset of field: ScrollbarWidget::draggingId"]
8474        [::std::mem::offset_of!(ScrollbarWidget, draggingId) - 76usize];
8475    ["Offset of field: ScrollbarWidget::padding"]
8476        [::std::mem::offset_of!(ScrollbarWidget, padding) - 80usize];
8477    ["Offset of field: ScrollbarWidget::borderX"]
8478        [::std::mem::offset_of!(ScrollbarWidget, borderX) - 84usize];
8479    ["Offset of field: ScrollbarWidget::borderY"]
8480        [::std::mem::offset_of!(ScrollbarWidget, borderY) - 88usize];
8481    ["Offset of field: ScrollbarWidget::nubsWidth"]
8482        [::std::mem::offset_of!(ScrollbarWidget, nubsWidth) - 92usize];
8483    ["Offset of field: ScrollbarWidget::offsets"]
8484        [::std::mem::offset_of!(ScrollbarWidget, offsets) - 96usize];
8485};
8486#[repr(C)]
8487pub struct HotbarWidget {
8488    pub VTABLE: *const WidgetVTABLE,
8489    pub x: ::std::os::raw::c_int,
8490    pub y: ::std::os::raw::c_int,
8491    pub width: ::std::os::raw::c_int,
8492    pub height: ::std::os::raw::c_int,
8493    pub active: cc_bool,
8494    pub flags: cc_uint8,
8495    pub horAnchor: cc_uint8,
8496    pub verAnchor: cc_uint8,
8497    pub xOffset: ::std::os::raw::c_int,
8498    pub yOffset: ::std::os::raw::c_int,
8499    pub MenuClick: Widget_LeftClick,
8500    pub meta: cc_pointer,
8501    pub selTex: Texture,
8502    pub backTex: Texture,
8503    pub slotWidth: f32,
8504    pub selWidth: f32,
8505    pub slotXOffset: f32,
8506    pub elemSize: f32,
8507    pub scrollAcc: f32,
8508    pub scale: f32,
8509    pub altHandled: cc_bool,
8510    pub ellipsisTex: Texture,
8511    pub state: [::std::os::raw::c_int; 27usize],
8512    pub verticesCount: ::std::os::raw::c_int,
8513    pub touchId: [::std::os::raw::c_int; 8usize],
8514    pub touchTime: [f32; 8usize],
8515}
8516#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8517const _: () = {
8518    ["Size of HotbarWidget"][::std::mem::size_of::<HotbarWidget>() - 360usize];
8519    ["Alignment of HotbarWidget"][::std::mem::align_of::<HotbarWidget>() - 8usize];
8520    ["Offset of field: HotbarWidget::VTABLE"]
8521        [::std::mem::offset_of!(HotbarWidget, VTABLE) - 0usize];
8522    ["Offset of field: HotbarWidget::x"][::std::mem::offset_of!(HotbarWidget, x) - 8usize];
8523    ["Offset of field: HotbarWidget::y"][::std::mem::offset_of!(HotbarWidget, y) - 12usize];
8524    ["Offset of field: HotbarWidget::width"][::std::mem::offset_of!(HotbarWidget, width) - 16usize];
8525    ["Offset of field: HotbarWidget::height"]
8526        [::std::mem::offset_of!(HotbarWidget, height) - 20usize];
8527    ["Offset of field: HotbarWidget::active"]
8528        [::std::mem::offset_of!(HotbarWidget, active) - 24usize];
8529    ["Offset of field: HotbarWidget::flags"][::std::mem::offset_of!(HotbarWidget, flags) - 25usize];
8530    ["Offset of field: HotbarWidget::horAnchor"]
8531        [::std::mem::offset_of!(HotbarWidget, horAnchor) - 26usize];
8532    ["Offset of field: HotbarWidget::verAnchor"]
8533        [::std::mem::offset_of!(HotbarWidget, verAnchor) - 27usize];
8534    ["Offset of field: HotbarWidget::xOffset"]
8535        [::std::mem::offset_of!(HotbarWidget, xOffset) - 28usize];
8536    ["Offset of field: HotbarWidget::yOffset"]
8537        [::std::mem::offset_of!(HotbarWidget, yOffset) - 32usize];
8538    ["Offset of field: HotbarWidget::MenuClick"]
8539        [::std::mem::offset_of!(HotbarWidget, MenuClick) - 40usize];
8540    ["Offset of field: HotbarWidget::meta"][::std::mem::offset_of!(HotbarWidget, meta) - 48usize];
8541    ["Offset of field: HotbarWidget::selTex"]
8542        [::std::mem::offset_of!(HotbarWidget, selTex) - 56usize];
8543    ["Offset of field: HotbarWidget::backTex"]
8544        [::std::mem::offset_of!(HotbarWidget, backTex) - 88usize];
8545    ["Offset of field: HotbarWidget::slotWidth"]
8546        [::std::mem::offset_of!(HotbarWidget, slotWidth) - 120usize];
8547    ["Offset of field: HotbarWidget::selWidth"]
8548        [::std::mem::offset_of!(HotbarWidget, selWidth) - 124usize];
8549    ["Offset of field: HotbarWidget::slotXOffset"]
8550        [::std::mem::offset_of!(HotbarWidget, slotXOffset) - 128usize];
8551    ["Offset of field: HotbarWidget::elemSize"]
8552        [::std::mem::offset_of!(HotbarWidget, elemSize) - 132usize];
8553    ["Offset of field: HotbarWidget::scrollAcc"]
8554        [::std::mem::offset_of!(HotbarWidget, scrollAcc) - 136usize];
8555    ["Offset of field: HotbarWidget::scale"]
8556        [::std::mem::offset_of!(HotbarWidget, scale) - 140usize];
8557    ["Offset of field: HotbarWidget::altHandled"]
8558        [::std::mem::offset_of!(HotbarWidget, altHandled) - 144usize];
8559    ["Offset of field: HotbarWidget::ellipsisTex"]
8560        [::std::mem::offset_of!(HotbarWidget, ellipsisTex) - 152usize];
8561    ["Offset of field: HotbarWidget::state"]
8562        [::std::mem::offset_of!(HotbarWidget, state) - 184usize];
8563    ["Offset of field: HotbarWidget::verticesCount"]
8564        [::std::mem::offset_of!(HotbarWidget, verticesCount) - 292usize];
8565    ["Offset of field: HotbarWidget::touchId"]
8566        [::std::mem::offset_of!(HotbarWidget, touchId) - 296usize];
8567    ["Offset of field: HotbarWidget::touchTime"]
8568        [::std::mem::offset_of!(HotbarWidget, touchTime) - 328usize];
8569};
8570#[repr(C)]
8571#[derive(Copy, Clone)]
8572pub struct TableWidget {
8573    pub VTABLE: *const WidgetVTABLE,
8574    pub x: ::std::os::raw::c_int,
8575    pub y: ::std::os::raw::c_int,
8576    pub width: ::std::os::raw::c_int,
8577    pub height: ::std::os::raw::c_int,
8578    pub active: cc_bool,
8579    pub flags: cc_uint8,
8580    pub horAnchor: cc_uint8,
8581    pub verAnchor: cc_uint8,
8582    pub xOffset: ::std::os::raw::c_int,
8583    pub yOffset: ::std::os::raw::c_int,
8584    pub MenuClick: Widget_LeftClick,
8585    pub meta: cc_pointer,
8586    pub blocksCount: ::std::os::raw::c_int,
8587    pub blocksPerRow: ::std::os::raw::c_int,
8588    pub rowsTotal: ::std::os::raw::c_int,
8589    pub rowsVisible: ::std::os::raw::c_int,
8590    pub lastCreatedIndex: ::std::os::raw::c_int,
8591    pub selectedIndex: ::std::os::raw::c_int,
8592    pub cellSizeX: ::std::os::raw::c_int,
8593    pub cellSizeY: ::std::os::raw::c_int,
8594    pub normBlockSize: f32,
8595    pub selBlockSize: f32,
8596    pub vb: GfxResourceID,
8597    pub pendingClose: cc_bool,
8598    pub everCreated: cc_bool,
8599    pub scale: f32,
8600    pub padXAcc: f32,
8601    pub padYAcc: f32,
8602    pub blocks: [BlockID; 768usize],
8603    pub scroll: ScrollbarWidget,
8604    pub lastX: ::std::os::raw::c_int,
8605    pub lastY: ::std::os::raw::c_int,
8606    pub paddingX: ::std::os::raw::c_int,
8607    pub paddingL: ::std::os::raw::c_int,
8608    pub paddingR: ::std::os::raw::c_int,
8609    pub paddingT: ::std::os::raw::c_int,
8610    pub paddingB: ::std::os::raw::c_int,
8611    pub UpdateTitle: ::std::option::Option<unsafe extern "C" fn(block: BlockID)>,
8612    pub state: [::std::os::raw::c_int; 240usize],
8613    pub verticesCount: ::std::os::raw::c_int,
8614}
8615#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8616const _: () = {
8617    ["Size of TableWidget"][::std::mem::size_of::<TableWidget>() - 2776usize];
8618    ["Alignment of TableWidget"][::std::mem::align_of::<TableWidget>() - 8usize];
8619    ["Offset of field: TableWidget::VTABLE"][::std::mem::offset_of!(TableWidget, VTABLE) - 0usize];
8620    ["Offset of field: TableWidget::x"][::std::mem::offset_of!(TableWidget, x) - 8usize];
8621    ["Offset of field: TableWidget::y"][::std::mem::offset_of!(TableWidget, y) - 12usize];
8622    ["Offset of field: TableWidget::width"][::std::mem::offset_of!(TableWidget, width) - 16usize];
8623    ["Offset of field: TableWidget::height"][::std::mem::offset_of!(TableWidget, height) - 20usize];
8624    ["Offset of field: TableWidget::active"][::std::mem::offset_of!(TableWidget, active) - 24usize];
8625    ["Offset of field: TableWidget::flags"][::std::mem::offset_of!(TableWidget, flags) - 25usize];
8626    ["Offset of field: TableWidget::horAnchor"]
8627        [::std::mem::offset_of!(TableWidget, horAnchor) - 26usize];
8628    ["Offset of field: TableWidget::verAnchor"]
8629        [::std::mem::offset_of!(TableWidget, verAnchor) - 27usize];
8630    ["Offset of field: TableWidget::xOffset"]
8631        [::std::mem::offset_of!(TableWidget, xOffset) - 28usize];
8632    ["Offset of field: TableWidget::yOffset"]
8633        [::std::mem::offset_of!(TableWidget, yOffset) - 32usize];
8634    ["Offset of field: TableWidget::MenuClick"]
8635        [::std::mem::offset_of!(TableWidget, MenuClick) - 40usize];
8636    ["Offset of field: TableWidget::meta"][::std::mem::offset_of!(TableWidget, meta) - 48usize];
8637    ["Offset of field: TableWidget::blocksCount"]
8638        [::std::mem::offset_of!(TableWidget, blocksCount) - 56usize];
8639    ["Offset of field: TableWidget::blocksPerRow"]
8640        [::std::mem::offset_of!(TableWidget, blocksPerRow) - 60usize];
8641    ["Offset of field: TableWidget::rowsTotal"]
8642        [::std::mem::offset_of!(TableWidget, rowsTotal) - 64usize];
8643    ["Offset of field: TableWidget::rowsVisible"]
8644        [::std::mem::offset_of!(TableWidget, rowsVisible) - 68usize];
8645    ["Offset of field: TableWidget::lastCreatedIndex"]
8646        [::std::mem::offset_of!(TableWidget, lastCreatedIndex) - 72usize];
8647    ["Offset of field: TableWidget::selectedIndex"]
8648        [::std::mem::offset_of!(TableWidget, selectedIndex) - 76usize];
8649    ["Offset of field: TableWidget::cellSizeX"]
8650        [::std::mem::offset_of!(TableWidget, cellSizeX) - 80usize];
8651    ["Offset of field: TableWidget::cellSizeY"]
8652        [::std::mem::offset_of!(TableWidget, cellSizeY) - 84usize];
8653    ["Offset of field: TableWidget::normBlockSize"]
8654        [::std::mem::offset_of!(TableWidget, normBlockSize) - 88usize];
8655    ["Offset of field: TableWidget::selBlockSize"]
8656        [::std::mem::offset_of!(TableWidget, selBlockSize) - 92usize];
8657    ["Offset of field: TableWidget::vb"][::std::mem::offset_of!(TableWidget, vb) - 96usize];
8658    ["Offset of field: TableWidget::pendingClose"]
8659        [::std::mem::offset_of!(TableWidget, pendingClose) - 104usize];
8660    ["Offset of field: TableWidget::everCreated"]
8661        [::std::mem::offset_of!(TableWidget, everCreated) - 105usize];
8662    ["Offset of field: TableWidget::scale"][::std::mem::offset_of!(TableWidget, scale) - 108usize];
8663    ["Offset of field: TableWidget::padXAcc"]
8664        [::std::mem::offset_of!(TableWidget, padXAcc) - 112usize];
8665    ["Offset of field: TableWidget::padYAcc"]
8666        [::std::mem::offset_of!(TableWidget, padYAcc) - 116usize];
8667    ["Offset of field: TableWidget::blocks"]
8668        [::std::mem::offset_of!(TableWidget, blocks) - 120usize];
8669    ["Offset of field: TableWidget::scroll"]
8670        [::std::mem::offset_of!(TableWidget, scroll) - 1656usize];
8671    ["Offset of field: TableWidget::lastX"][::std::mem::offset_of!(TableWidget, lastX) - 1768usize];
8672    ["Offset of field: TableWidget::lastY"][::std::mem::offset_of!(TableWidget, lastY) - 1772usize];
8673    ["Offset of field: TableWidget::paddingX"]
8674        [::std::mem::offset_of!(TableWidget, paddingX) - 1776usize];
8675    ["Offset of field: TableWidget::paddingL"]
8676        [::std::mem::offset_of!(TableWidget, paddingL) - 1780usize];
8677    ["Offset of field: TableWidget::paddingR"]
8678        [::std::mem::offset_of!(TableWidget, paddingR) - 1784usize];
8679    ["Offset of field: TableWidget::paddingT"]
8680        [::std::mem::offset_of!(TableWidget, paddingT) - 1788usize];
8681    ["Offset of field: TableWidget::paddingB"]
8682        [::std::mem::offset_of!(TableWidget, paddingB) - 1792usize];
8683    ["Offset of field: TableWidget::UpdateTitle"]
8684        [::std::mem::offset_of!(TableWidget, UpdateTitle) - 1800usize];
8685    ["Offset of field: TableWidget::state"][::std::mem::offset_of!(TableWidget, state) - 1808usize];
8686    ["Offset of field: TableWidget::verticesCount"]
8687        [::std::mem::offset_of!(TableWidget, verticesCount) - 2768usize];
8688};
8689#[repr(C)]
8690pub struct InputWidget {
8691    pub VTABLE: *const WidgetVTABLE,
8692    pub x: ::std::os::raw::c_int,
8693    pub y: ::std::os::raw::c_int,
8694    pub width: ::std::os::raw::c_int,
8695    pub height: ::std::os::raw::c_int,
8696    pub active: cc_bool,
8697    pub flags: cc_uint8,
8698    pub horAnchor: cc_uint8,
8699    pub verAnchor: cc_uint8,
8700    pub xOffset: ::std::os::raw::c_int,
8701    pub yOffset: ::std::os::raw::c_int,
8702    pub MenuClick: Widget_LeftClick,
8703    pub meta: cc_pointer,
8704    pub font: *mut FontDesc,
8705    pub GetMaxLines: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
8706    pub RemakeTexture:
8707        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
8708    pub OnPressedEnter:
8709        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
8710    pub AllowedChar: ::std::option::Option<
8711        unsafe extern "C" fn(
8712            elem: *mut ::std::os::raw::c_void,
8713            c: ::std::os::raw::c_char,
8714        ) -> cc_bool,
8715    >,
8716    pub OnTextChanged:
8717        ::std::option::Option<unsafe extern "C" fn(elem: *mut ::std::os::raw::c_void)>,
8718    pub text: cc_string,
8719    pub lines: [cc_string; 3usize],
8720    pub lineWidths: [::std::os::raw::c_int; 3usize],
8721    pub lineHeight: ::std::os::raw::c_int,
8722    pub inputTex: Texture,
8723    pub prefixWidth: ::std::os::raw::c_int,
8724    pub convertPercents: cc_bool,
8725    pub padding: cc_uint8,
8726    pub showCaret: cc_bool,
8727    pub caretWidth: ::std::os::raw::c_int,
8728    pub caretX: ::std::os::raw::c_int,
8729    pub caretY: ::std::os::raw::c_int,
8730    pub caretPos: ::std::os::raw::c_int,
8731    pub caretOffset: ::std::os::raw::c_int,
8732    pub caretCol: PackedCol,
8733    pub caretTex: Texture,
8734    pub caretAccumulator: f32,
8735}
8736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8737const _: () = {
8738    ["Size of InputWidget"][::std::mem::size_of::<InputWidget>() - 288usize];
8739    ["Alignment of InputWidget"][::std::mem::align_of::<InputWidget>() - 8usize];
8740    ["Offset of field: InputWidget::VTABLE"][::std::mem::offset_of!(InputWidget, VTABLE) - 0usize];
8741    ["Offset of field: InputWidget::x"][::std::mem::offset_of!(InputWidget, x) - 8usize];
8742    ["Offset of field: InputWidget::y"][::std::mem::offset_of!(InputWidget, y) - 12usize];
8743    ["Offset of field: InputWidget::width"][::std::mem::offset_of!(InputWidget, width) - 16usize];
8744    ["Offset of field: InputWidget::height"][::std::mem::offset_of!(InputWidget, height) - 20usize];
8745    ["Offset of field: InputWidget::active"][::std::mem::offset_of!(InputWidget, active) - 24usize];
8746    ["Offset of field: InputWidget::flags"][::std::mem::offset_of!(InputWidget, flags) - 25usize];
8747    ["Offset of field: InputWidget::horAnchor"]
8748        [::std::mem::offset_of!(InputWidget, horAnchor) - 26usize];
8749    ["Offset of field: InputWidget::verAnchor"]
8750        [::std::mem::offset_of!(InputWidget, verAnchor) - 27usize];
8751    ["Offset of field: InputWidget::xOffset"]
8752        [::std::mem::offset_of!(InputWidget, xOffset) - 28usize];
8753    ["Offset of field: InputWidget::yOffset"]
8754        [::std::mem::offset_of!(InputWidget, yOffset) - 32usize];
8755    ["Offset of field: InputWidget::MenuClick"]
8756        [::std::mem::offset_of!(InputWidget, MenuClick) - 40usize];
8757    ["Offset of field: InputWidget::meta"][::std::mem::offset_of!(InputWidget, meta) - 48usize];
8758    ["Offset of field: InputWidget::font"][::std::mem::offset_of!(InputWidget, font) - 56usize];
8759    ["Offset of field: InputWidget::GetMaxLines"]
8760        [::std::mem::offset_of!(InputWidget, GetMaxLines) - 64usize];
8761    ["Offset of field: InputWidget::RemakeTexture"]
8762        [::std::mem::offset_of!(InputWidget, RemakeTexture) - 72usize];
8763    ["Offset of field: InputWidget::OnPressedEnter"]
8764        [::std::mem::offset_of!(InputWidget, OnPressedEnter) - 80usize];
8765    ["Offset of field: InputWidget::AllowedChar"]
8766        [::std::mem::offset_of!(InputWidget, AllowedChar) - 88usize];
8767    ["Offset of field: InputWidget::OnTextChanged"]
8768        [::std::mem::offset_of!(InputWidget, OnTextChanged) - 96usize];
8769    ["Offset of field: InputWidget::text"][::std::mem::offset_of!(InputWidget, text) - 104usize];
8770    ["Offset of field: InputWidget::lines"][::std::mem::offset_of!(InputWidget, lines) - 120usize];
8771    ["Offset of field: InputWidget::lineWidths"]
8772        [::std::mem::offset_of!(InputWidget, lineWidths) - 168usize];
8773    ["Offset of field: InputWidget::lineHeight"]
8774        [::std::mem::offset_of!(InputWidget, lineHeight) - 180usize];
8775    ["Offset of field: InputWidget::inputTex"]
8776        [::std::mem::offset_of!(InputWidget, inputTex) - 184usize];
8777    ["Offset of field: InputWidget::prefixWidth"]
8778        [::std::mem::offset_of!(InputWidget, prefixWidth) - 216usize];
8779    ["Offset of field: InputWidget::convertPercents"]
8780        [::std::mem::offset_of!(InputWidget, convertPercents) - 220usize];
8781    ["Offset of field: InputWidget::padding"]
8782        [::std::mem::offset_of!(InputWidget, padding) - 221usize];
8783    ["Offset of field: InputWidget::showCaret"]
8784        [::std::mem::offset_of!(InputWidget, showCaret) - 222usize];
8785    ["Offset of field: InputWidget::caretWidth"]
8786        [::std::mem::offset_of!(InputWidget, caretWidth) - 224usize];
8787    ["Offset of field: InputWidget::caretX"]
8788        [::std::mem::offset_of!(InputWidget, caretX) - 228usize];
8789    ["Offset of field: InputWidget::caretY"]
8790        [::std::mem::offset_of!(InputWidget, caretY) - 232usize];
8791    ["Offset of field: InputWidget::caretPos"]
8792        [::std::mem::offset_of!(InputWidget, caretPos) - 236usize];
8793    ["Offset of field: InputWidget::caretOffset"]
8794        [::std::mem::offset_of!(InputWidget, caretOffset) - 240usize];
8795    ["Offset of field: InputWidget::caretCol"]
8796        [::std::mem::offset_of!(InputWidget, caretCol) - 244usize];
8797    ["Offset of field: InputWidget::caretTex"]
8798        [::std::mem::offset_of!(InputWidget, caretTex) - 248usize];
8799    ["Offset of field: InputWidget::caretAccumulator"]
8800        [::std::mem::offset_of!(InputWidget, caretAccumulator) - 280usize];
8801};
8802#[repr(C)]
8803#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8804pub struct MenuInputVTABLE {
8805    pub GetRange:
8806        ::std::option::Option<unsafe extern "C" fn(d: *mut MenuInputDesc, range: *mut cc_string)>,
8807    pub IsValidChar: ::std::option::Option<
8808        unsafe extern "C" fn(d: *mut MenuInputDesc, c: ::std::os::raw::c_char) -> cc_bool,
8809    >,
8810    pub IsValidString: ::std::option::Option<
8811        unsafe extern "C" fn(d: *mut MenuInputDesc, s: *const cc_string) -> cc_bool,
8812    >,
8813    pub IsValidValue: ::std::option::Option<
8814        unsafe extern "C" fn(d: *mut MenuInputDesc, s: *const cc_string) -> cc_bool,
8815    >,
8816    pub GetDefault:
8817        ::std::option::Option<unsafe extern "C" fn(d: *mut MenuInputDesc, value: *mut cc_string)>,
8818    pub ProcessInput: ::std::option::Option<
8819        unsafe extern "C" fn(
8820            d: *mut MenuInputDesc,
8821            value: *mut cc_string,
8822            btn: ::std::os::raw::c_int,
8823        ) -> cc_bool,
8824    >,
8825}
8826#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8827const _: () = {
8828    ["Size of MenuInputVTABLE"][::std::mem::size_of::<MenuInputVTABLE>() - 48usize];
8829    ["Alignment of MenuInputVTABLE"][::std::mem::align_of::<MenuInputVTABLE>() - 8usize];
8830    ["Offset of field: MenuInputVTABLE::GetRange"]
8831        [::std::mem::offset_of!(MenuInputVTABLE, GetRange) - 0usize];
8832    ["Offset of field: MenuInputVTABLE::IsValidChar"]
8833        [::std::mem::offset_of!(MenuInputVTABLE, IsValidChar) - 8usize];
8834    ["Offset of field: MenuInputVTABLE::IsValidString"]
8835        [::std::mem::offset_of!(MenuInputVTABLE, IsValidString) - 16usize];
8836    ["Offset of field: MenuInputVTABLE::IsValidValue"]
8837        [::std::mem::offset_of!(MenuInputVTABLE, IsValidValue) - 24usize];
8838    ["Offset of field: MenuInputVTABLE::GetDefault"]
8839        [::std::mem::offset_of!(MenuInputVTABLE, GetDefault) - 32usize];
8840    ["Offset of field: MenuInputVTABLE::ProcessInput"]
8841        [::std::mem::offset_of!(MenuInputVTABLE, ProcessInput) - 40usize];
8842};
8843#[repr(C)]
8844#[derive(Copy, Clone)]
8845pub struct MenuInputDesc {
8846    pub VTABLE: *const MenuInputVTABLE,
8847    pub meta: MenuInputDesc__bindgen_ty_1,
8848}
8849#[repr(C)]
8850#[derive(Copy, Clone)]
8851pub union MenuInputDesc__bindgen_ty_1 {
8852    pub e: MenuInputDesc__bindgen_ty_1__bindgen_ty_1,
8853    pub i: MenuInputDesc__bindgen_ty_1__bindgen_ty_2,
8854    pub f: MenuInputDesc__bindgen_ty_1__bindgen_ty_3,
8855    pub h: MenuInputDesc__bindgen_ty_1__bindgen_ty_4,
8856}
8857#[repr(C)]
8858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8859pub struct MenuInputDesc__bindgen_ty_1__bindgen_ty_1 {
8860    pub Names: *const *const ::std::os::raw::c_char,
8861    pub Count: ::std::os::raw::c_int,
8862}
8863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8864const _: () = {
8865    ["Size of MenuInputDesc__bindgen_ty_1__bindgen_ty_1"]
8866        [::std::mem::size_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_1>() - 16usize];
8867    ["Alignment of MenuInputDesc__bindgen_ty_1__bindgen_ty_1"]
8868        [::std::mem::align_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_1>() - 8usize];
8869    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_1::Names"]
8870        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_1, Names) - 0usize];
8871    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_1::Count"]
8872        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_1, Count) - 8usize];
8873};
8874#[repr(C)]
8875#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8876pub struct MenuInputDesc__bindgen_ty_1__bindgen_ty_2 {
8877    pub Min: ::std::os::raw::c_int,
8878    pub Max: ::std::os::raw::c_int,
8879    pub Default: ::std::os::raw::c_int,
8880}
8881#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8882const _: () = {
8883    ["Size of MenuInputDesc__bindgen_ty_1__bindgen_ty_2"]
8884        [::std::mem::size_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_2>() - 12usize];
8885    ["Alignment of MenuInputDesc__bindgen_ty_1__bindgen_ty_2"]
8886        [::std::mem::align_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_2>() - 4usize];
8887    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_2::Min"]
8888        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_2, Min) - 0usize];
8889    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_2::Max"]
8890        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_2, Max) - 4usize];
8891    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_2::Default"]
8892        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_2, Default) - 8usize];
8893};
8894#[repr(C)]
8895#[derive(Debug, Copy, Clone, PartialEq)]
8896pub struct MenuInputDesc__bindgen_ty_1__bindgen_ty_3 {
8897    pub Min: f32,
8898    pub Max: f32,
8899    pub Default: f32,
8900}
8901#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8902const _: () = {
8903    ["Size of MenuInputDesc__bindgen_ty_1__bindgen_ty_3"]
8904        [::std::mem::size_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_3>() - 12usize];
8905    ["Alignment of MenuInputDesc__bindgen_ty_1__bindgen_ty_3"]
8906        [::std::mem::align_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_3>() - 4usize];
8907    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_3::Min"]
8908        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_3, Min) - 0usize];
8909    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_3::Max"]
8910        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_3, Max) - 4usize];
8911    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_3::Default"]
8912        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_3, Default) - 8usize];
8913};
8914#[repr(C)]
8915#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8916pub struct MenuInputDesc__bindgen_ty_1__bindgen_ty_4 {
8917    pub Default: PackedCol,
8918}
8919#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8920const _: () = {
8921    ["Size of MenuInputDesc__bindgen_ty_1__bindgen_ty_4"]
8922        [::std::mem::size_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_4>() - 4usize];
8923    ["Alignment of MenuInputDesc__bindgen_ty_1__bindgen_ty_4"]
8924        [::std::mem::align_of::<MenuInputDesc__bindgen_ty_1__bindgen_ty_4>() - 4usize];
8925    ["Offset of field: MenuInputDesc__bindgen_ty_1__bindgen_ty_4::Default"]
8926        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1__bindgen_ty_4, Default) - 0usize];
8927};
8928#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8929const _: () = {
8930    ["Size of MenuInputDesc__bindgen_ty_1"]
8931        [::std::mem::size_of::<MenuInputDesc__bindgen_ty_1>() - 16usize];
8932    ["Alignment of MenuInputDesc__bindgen_ty_1"]
8933        [::std::mem::align_of::<MenuInputDesc__bindgen_ty_1>() - 8usize];
8934    ["Offset of field: MenuInputDesc__bindgen_ty_1::e"]
8935        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1, e) - 0usize];
8936    ["Offset of field: MenuInputDesc__bindgen_ty_1::i"]
8937        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1, i) - 0usize];
8938    ["Offset of field: MenuInputDesc__bindgen_ty_1::f"]
8939        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1, f) - 0usize];
8940    ["Offset of field: MenuInputDesc__bindgen_ty_1::h"]
8941        [::std::mem::offset_of!(MenuInputDesc__bindgen_ty_1, h) - 0usize];
8942};
8943#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8944const _: () = {
8945    ["Size of MenuInputDesc"][::std::mem::size_of::<MenuInputDesc>() - 24usize];
8946    ["Alignment of MenuInputDesc"][::std::mem::align_of::<MenuInputDesc>() - 8usize];
8947    ["Offset of field: MenuInputDesc::VTABLE"]
8948        [::std::mem::offset_of!(MenuInputDesc, VTABLE) - 0usize];
8949    ["Offset of field: MenuInputDesc::meta"][::std::mem::offset_of!(MenuInputDesc, meta) - 8usize];
8950};
8951#[repr(C)]
8952pub struct TextInputWidget {
8953    pub base: InputWidget,
8954    pub minWidth: ::std::os::raw::c_int,
8955    pub minHeight: ::std::os::raw::c_int,
8956    pub desc: MenuInputDesc,
8957    pub _textBuffer: [::std::os::raw::c_char; 64usize],
8958    pub onscreenPlaceholder: *const ::std::os::raw::c_char,
8959    pub onscreenType: ::std::os::raw::c_int,
8960}
8961#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8962const _: () = {
8963    ["Size of TextInputWidget"][::std::mem::size_of::<TextInputWidget>() - 400usize];
8964    ["Alignment of TextInputWidget"][::std::mem::align_of::<TextInputWidget>() - 8usize];
8965    ["Offset of field: TextInputWidget::base"]
8966        [::std::mem::offset_of!(TextInputWidget, base) - 0usize];
8967    ["Offset of field: TextInputWidget::minWidth"]
8968        [::std::mem::offset_of!(TextInputWidget, minWidth) - 288usize];
8969    ["Offset of field: TextInputWidget::minHeight"]
8970        [::std::mem::offset_of!(TextInputWidget, minHeight) - 292usize];
8971    ["Offset of field: TextInputWidget::desc"]
8972        [::std::mem::offset_of!(TextInputWidget, desc) - 296usize];
8973    ["Offset of field: TextInputWidget::_textBuffer"]
8974        [::std::mem::offset_of!(TextInputWidget, _textBuffer) - 320usize];
8975    ["Offset of field: TextInputWidget::onscreenPlaceholder"]
8976        [::std::mem::offset_of!(TextInputWidget, onscreenPlaceholder) - 384usize];
8977    ["Offset of field: TextInputWidget::onscreenType"]
8978        [::std::mem::offset_of!(TextInputWidget, onscreenType) - 392usize];
8979};
8980#[repr(C)]
8981pub struct ChatInputWidget {
8982    pub base: InputWidget,
8983    pub typingLogPos: ::std::os::raw::c_int,
8984    pub origStr: cc_string,
8985    pub _textBuffer: [::std::os::raw::c_char; 192usize],
8986    pub _origBuffer: [::std::os::raw::c_char; 192usize],
8987}
8988#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8989const _: () = {
8990    ["Size of ChatInputWidget"][::std::mem::size_of::<ChatInputWidget>() - 696usize];
8991    ["Alignment of ChatInputWidget"][::std::mem::align_of::<ChatInputWidget>() - 8usize];
8992    ["Offset of field: ChatInputWidget::base"]
8993        [::std::mem::offset_of!(ChatInputWidget, base) - 0usize];
8994    ["Offset of field: ChatInputWidget::typingLogPos"]
8995        [::std::mem::offset_of!(ChatInputWidget, typingLogPos) - 288usize];
8996    ["Offset of field: ChatInputWidget::origStr"]
8997        [::std::mem::offset_of!(ChatInputWidget, origStr) - 296usize];
8998    ["Offset of field: ChatInputWidget::_textBuffer"]
8999        [::std::mem::offset_of!(ChatInputWidget, _textBuffer) - 312usize];
9000    ["Offset of field: ChatInputWidget::_origBuffer"]
9001        [::std::mem::offset_of!(ChatInputWidget, _origBuffer) - 504usize];
9002};
9003pub type TextGroupWidget_Get =
9004    ::std::option::Option<unsafe extern "C" fn(i: ::std::os::raw::c_int) -> cc_string>;
9005#[repr(C)]
9006#[derive(Copy, Clone)]
9007pub struct TextGroupWidget {
9008    pub VTABLE: *const WidgetVTABLE,
9009    pub x: ::std::os::raw::c_int,
9010    pub y: ::std::os::raw::c_int,
9011    pub width: ::std::os::raw::c_int,
9012    pub height: ::std::os::raw::c_int,
9013    pub active: cc_bool,
9014    pub flags: cc_uint8,
9015    pub horAnchor: cc_uint8,
9016    pub verAnchor: cc_uint8,
9017    pub xOffset: ::std::os::raw::c_int,
9018    pub yOffset: ::std::os::raw::c_int,
9019    pub MenuClick: Widget_LeftClick,
9020    pub meta: cc_pointer,
9021    pub lines: ::std::os::raw::c_int,
9022    pub defaultHeight: ::std::os::raw::c_int,
9023    pub font: *mut FontDesc,
9024    pub collapsible: [cc_bool; 30usize],
9025    pub underlineUrls: cc_bool,
9026    pub textures: *mut Texture,
9027    pub GetLine: TextGroupWidget_Get,
9028}
9029#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9030const _: () = {
9031    ["Size of TextGroupWidget"][::std::mem::size_of::<TextGroupWidget>() - 120usize];
9032    ["Alignment of TextGroupWidget"][::std::mem::align_of::<TextGroupWidget>() - 8usize];
9033    ["Offset of field: TextGroupWidget::VTABLE"]
9034        [::std::mem::offset_of!(TextGroupWidget, VTABLE) - 0usize];
9035    ["Offset of field: TextGroupWidget::x"][::std::mem::offset_of!(TextGroupWidget, x) - 8usize];
9036    ["Offset of field: TextGroupWidget::y"][::std::mem::offset_of!(TextGroupWidget, y) - 12usize];
9037    ["Offset of field: TextGroupWidget::width"]
9038        [::std::mem::offset_of!(TextGroupWidget, width) - 16usize];
9039    ["Offset of field: TextGroupWidget::height"]
9040        [::std::mem::offset_of!(TextGroupWidget, height) - 20usize];
9041    ["Offset of field: TextGroupWidget::active"]
9042        [::std::mem::offset_of!(TextGroupWidget, active) - 24usize];
9043    ["Offset of field: TextGroupWidget::flags"]
9044        [::std::mem::offset_of!(TextGroupWidget, flags) - 25usize];
9045    ["Offset of field: TextGroupWidget::horAnchor"]
9046        [::std::mem::offset_of!(TextGroupWidget, horAnchor) - 26usize];
9047    ["Offset of field: TextGroupWidget::verAnchor"]
9048        [::std::mem::offset_of!(TextGroupWidget, verAnchor) - 27usize];
9049    ["Offset of field: TextGroupWidget::xOffset"]
9050        [::std::mem::offset_of!(TextGroupWidget, xOffset) - 28usize];
9051    ["Offset of field: TextGroupWidget::yOffset"]
9052        [::std::mem::offset_of!(TextGroupWidget, yOffset) - 32usize];
9053    ["Offset of field: TextGroupWidget::MenuClick"]
9054        [::std::mem::offset_of!(TextGroupWidget, MenuClick) - 40usize];
9055    ["Offset of field: TextGroupWidget::meta"]
9056        [::std::mem::offset_of!(TextGroupWidget, meta) - 48usize];
9057    ["Offset of field: TextGroupWidget::lines"]
9058        [::std::mem::offset_of!(TextGroupWidget, lines) - 56usize];
9059    ["Offset of field: TextGroupWidget::defaultHeight"]
9060        [::std::mem::offset_of!(TextGroupWidget, defaultHeight) - 60usize];
9061    ["Offset of field: TextGroupWidget::font"]
9062        [::std::mem::offset_of!(TextGroupWidget, font) - 64usize];
9063    ["Offset of field: TextGroupWidget::collapsible"]
9064        [::std::mem::offset_of!(TextGroupWidget, collapsible) - 72usize];
9065    ["Offset of field: TextGroupWidget::underlineUrls"]
9066        [::std::mem::offset_of!(TextGroupWidget, underlineUrls) - 102usize];
9067    ["Offset of field: TextGroupWidget::textures"]
9068        [::std::mem::offset_of!(TextGroupWidget, textures) - 104usize];
9069    ["Offset of field: TextGroupWidget::GetLine"]
9070        [::std::mem::offset_of!(TextGroupWidget, GetLine) - 112usize];
9071};
9072pub type SpecialInputAppendFunc = ::std::option::Option<
9073    unsafe extern "C" fn(userData: *mut ::std::os::raw::c_void, c: ::std::os::raw::c_char),
9074>;
9075#[repr(C)]
9076#[derive(Debug, Hash, PartialEq, Eq)]
9077pub struct SpecialInputTab {
9078    pub itemsPerRow: ::std::os::raw::c_int,
9079    pub charsPerItem: ::std::os::raw::c_int,
9080    pub titleWidth: ::std::os::raw::c_int,
9081    pub title: cc_string,
9082    pub contents: cc_string,
9083}
9084#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9085const _: () = {
9086    ["Size of SpecialInputTab"][::std::mem::size_of::<SpecialInputTab>() - 48usize];
9087    ["Alignment of SpecialInputTab"][::std::mem::align_of::<SpecialInputTab>() - 8usize];
9088    ["Offset of field: SpecialInputTab::itemsPerRow"]
9089        [::std::mem::offset_of!(SpecialInputTab, itemsPerRow) - 0usize];
9090    ["Offset of field: SpecialInputTab::charsPerItem"]
9091        [::std::mem::offset_of!(SpecialInputTab, charsPerItem) - 4usize];
9092    ["Offset of field: SpecialInputTab::titleWidth"]
9093        [::std::mem::offset_of!(SpecialInputTab, titleWidth) - 8usize];
9094    ["Offset of field: SpecialInputTab::title"]
9095        [::std::mem::offset_of!(SpecialInputTab, title) - 16usize];
9096    ["Offset of field: SpecialInputTab::contents"]
9097        [::std::mem::offset_of!(SpecialInputTab, contents) - 32usize];
9098};
9099#[repr(C)]
9100pub struct SpecialInputWidget {
9101    pub VTABLE: *const WidgetVTABLE,
9102    pub x: ::std::os::raw::c_int,
9103    pub y: ::std::os::raw::c_int,
9104    pub width: ::std::os::raw::c_int,
9105    pub height: ::std::os::raw::c_int,
9106    pub active: cc_bool,
9107    pub flags: cc_uint8,
9108    pub horAnchor: cc_uint8,
9109    pub verAnchor: cc_uint8,
9110    pub xOffset: ::std::os::raw::c_int,
9111    pub yOffset: ::std::os::raw::c_int,
9112    pub MenuClick: Widget_LeftClick,
9113    pub meta: cc_pointer,
9114    pub elementWidth: ::std::os::raw::c_int,
9115    pub elementHeight: ::std::os::raw::c_int,
9116    pub selectedIndex: ::std::os::raw::c_int,
9117    pub pendingRedraw: cc_bool,
9118    pub target: *mut InputWidget,
9119    pub tex: Texture,
9120    pub font: *mut FontDesc,
9121    pub titleHeight: ::std::os::raw::c_int,
9122    pub tabs: [SpecialInputTab; 5usize],
9123    pub colString: cc_string,
9124    pub _colBuffer: [::std::os::raw::c_char; 1024usize],
9125}
9126#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9127const _: () = {
9128    ["Size of SpecialInputWidget"][::std::mem::size_of::<SpecialInputWidget>() - 1408usize];
9129    ["Alignment of SpecialInputWidget"][::std::mem::align_of::<SpecialInputWidget>() - 8usize];
9130    ["Offset of field: SpecialInputWidget::VTABLE"]
9131        [::std::mem::offset_of!(SpecialInputWidget, VTABLE) - 0usize];
9132    ["Offset of field: SpecialInputWidget::x"]
9133        [::std::mem::offset_of!(SpecialInputWidget, x) - 8usize];
9134    ["Offset of field: SpecialInputWidget::y"]
9135        [::std::mem::offset_of!(SpecialInputWidget, y) - 12usize];
9136    ["Offset of field: SpecialInputWidget::width"]
9137        [::std::mem::offset_of!(SpecialInputWidget, width) - 16usize];
9138    ["Offset of field: SpecialInputWidget::height"]
9139        [::std::mem::offset_of!(SpecialInputWidget, height) - 20usize];
9140    ["Offset of field: SpecialInputWidget::active"]
9141        [::std::mem::offset_of!(SpecialInputWidget, active) - 24usize];
9142    ["Offset of field: SpecialInputWidget::flags"]
9143        [::std::mem::offset_of!(SpecialInputWidget, flags) - 25usize];
9144    ["Offset of field: SpecialInputWidget::horAnchor"]
9145        [::std::mem::offset_of!(SpecialInputWidget, horAnchor) - 26usize];
9146    ["Offset of field: SpecialInputWidget::verAnchor"]
9147        [::std::mem::offset_of!(SpecialInputWidget, verAnchor) - 27usize];
9148    ["Offset of field: SpecialInputWidget::xOffset"]
9149        [::std::mem::offset_of!(SpecialInputWidget, xOffset) - 28usize];
9150    ["Offset of field: SpecialInputWidget::yOffset"]
9151        [::std::mem::offset_of!(SpecialInputWidget, yOffset) - 32usize];
9152    ["Offset of field: SpecialInputWidget::MenuClick"]
9153        [::std::mem::offset_of!(SpecialInputWidget, MenuClick) - 40usize];
9154    ["Offset of field: SpecialInputWidget::meta"]
9155        [::std::mem::offset_of!(SpecialInputWidget, meta) - 48usize];
9156    ["Offset of field: SpecialInputWidget::elementWidth"]
9157        [::std::mem::offset_of!(SpecialInputWidget, elementWidth) - 56usize];
9158    ["Offset of field: SpecialInputWidget::elementHeight"]
9159        [::std::mem::offset_of!(SpecialInputWidget, elementHeight) - 60usize];
9160    ["Offset of field: SpecialInputWidget::selectedIndex"]
9161        [::std::mem::offset_of!(SpecialInputWidget, selectedIndex) - 64usize];
9162    ["Offset of field: SpecialInputWidget::pendingRedraw"]
9163        [::std::mem::offset_of!(SpecialInputWidget, pendingRedraw) - 68usize];
9164    ["Offset of field: SpecialInputWidget::target"]
9165        [::std::mem::offset_of!(SpecialInputWidget, target) - 72usize];
9166    ["Offset of field: SpecialInputWidget::tex"]
9167        [::std::mem::offset_of!(SpecialInputWidget, tex) - 80usize];
9168    ["Offset of field: SpecialInputWidget::font"]
9169        [::std::mem::offset_of!(SpecialInputWidget, font) - 112usize];
9170    ["Offset of field: SpecialInputWidget::titleHeight"]
9171        [::std::mem::offset_of!(SpecialInputWidget, titleHeight) - 120usize];
9172    ["Offset of field: SpecialInputWidget::tabs"]
9173        [::std::mem::offset_of!(SpecialInputWidget, tabs) - 128usize];
9174    ["Offset of field: SpecialInputWidget::colString"]
9175        [::std::mem::offset_of!(SpecialInputWidget, colString) - 368usize];
9176    ["Offset of field: SpecialInputWidget::_colBuffer"]
9177        [::std::mem::offset_of!(SpecialInputWidget, _colBuffer) - 384usize];
9178};
9179#[repr(C)]
9180#[derive(Debug, PartialEq)]
9181pub struct _WorldData {
9182    pub Blocks: *mut BlockRaw,
9183    pub Blocks2: *mut BlockRaw,
9184    pub Volume: ::std::os::raw::c_int,
9185    pub Width: ::std::os::raw::c_int,
9186    pub Height: ::std::os::raw::c_int,
9187    pub Length: ::std::os::raw::c_int,
9188    pub MaxX: ::std::os::raw::c_int,
9189    pub MaxY: ::std::os::raw::c_int,
9190    pub MaxZ: ::std::os::raw::c_int,
9191    pub OneY: ::std::os::raw::c_int,
9192    pub Uuid: [cc_uint8; 16usize],
9193    pub IDMask: ::std::os::raw::c_int,
9194    pub Loaded: cc_bool,
9195    pub LastSave: f64,
9196    pub Name: cc_string,
9197    pub ChunksX: ::std::os::raw::c_int,
9198    pub ChunksY: ::std::os::raw::c_int,
9199    pub ChunksZ: ::std::os::raw::c_int,
9200    pub ChunksCount: ::std::os::raw::c_int,
9201    pub Seed: ::std::os::raw::c_int,
9202}
9203#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9204const _: () = {
9205    ["Size of _WorldData"][::std::mem::size_of::<_WorldData>() - 120usize];
9206    ["Alignment of _WorldData"][::std::mem::align_of::<_WorldData>() - 8usize];
9207    ["Offset of field: _WorldData::Blocks"][::std::mem::offset_of!(_WorldData, Blocks) - 0usize];
9208    ["Offset of field: _WorldData::Blocks2"][::std::mem::offset_of!(_WorldData, Blocks2) - 8usize];
9209    ["Offset of field: _WorldData::Volume"][::std::mem::offset_of!(_WorldData, Volume) - 16usize];
9210    ["Offset of field: _WorldData::Width"][::std::mem::offset_of!(_WorldData, Width) - 20usize];
9211    ["Offset of field: _WorldData::Height"][::std::mem::offset_of!(_WorldData, Height) - 24usize];
9212    ["Offset of field: _WorldData::Length"][::std::mem::offset_of!(_WorldData, Length) - 28usize];
9213    ["Offset of field: _WorldData::MaxX"][::std::mem::offset_of!(_WorldData, MaxX) - 32usize];
9214    ["Offset of field: _WorldData::MaxY"][::std::mem::offset_of!(_WorldData, MaxY) - 36usize];
9215    ["Offset of field: _WorldData::MaxZ"][::std::mem::offset_of!(_WorldData, MaxZ) - 40usize];
9216    ["Offset of field: _WorldData::OneY"][::std::mem::offset_of!(_WorldData, OneY) - 44usize];
9217    ["Offset of field: _WorldData::Uuid"][::std::mem::offset_of!(_WorldData, Uuid) - 48usize];
9218    ["Offset of field: _WorldData::IDMask"][::std::mem::offset_of!(_WorldData, IDMask) - 64usize];
9219    ["Offset of field: _WorldData::Loaded"][::std::mem::offset_of!(_WorldData, Loaded) - 68usize];
9220    ["Offset of field: _WorldData::LastSave"]
9221        [::std::mem::offset_of!(_WorldData, LastSave) - 72usize];
9222    ["Offset of field: _WorldData::Name"][::std::mem::offset_of!(_WorldData, Name) - 80usize];
9223    ["Offset of field: _WorldData::ChunksX"][::std::mem::offset_of!(_WorldData, ChunksX) - 96usize];
9224    ["Offset of field: _WorldData::ChunksY"]
9225        [::std::mem::offset_of!(_WorldData, ChunksY) - 100usize];
9226    ["Offset of field: _WorldData::ChunksZ"]
9227        [::std::mem::offset_of!(_WorldData, ChunksZ) - 104usize];
9228    ["Offset of field: _WorldData::ChunksCount"]
9229        [::std::mem::offset_of!(_WorldData, ChunksCount) - 108usize];
9230    ["Offset of field: _WorldData::Seed"][::std::mem::offset_of!(_WorldData, Seed) - 112usize];
9231};
9232#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
9233    pub static mut World: _WorldData;
9234}
9235unsafe extern "C" {
9236    pub fn World_NewMap();
9237}
9238unsafe extern "C" {
9239    pub fn World_SetNewMap(
9240        blocks: *mut BlockRaw,
9241        width: ::std::os::raw::c_int,
9242        height: ::std::os::raw::c_int,
9243        length: ::std::os::raw::c_int,
9244    );
9245}
9246pub const EnvVar_ENV_VAR_EDGE_BLOCK: EnvVar = 0;
9247pub const EnvVar_ENV_VAR_SIDES_BLOCK: EnvVar = 1;
9248pub const EnvVar_ENV_VAR_EDGE_HEIGHT: EnvVar = 2;
9249pub const EnvVar_ENV_VAR_SIDES_OFFSET: EnvVar = 3;
9250pub const EnvVar_ENV_VAR_CLOUDS_HEIGHT: EnvVar = 4;
9251pub const EnvVar_ENV_VAR_CLOUDS_SPEED: EnvVar = 5;
9252pub const EnvVar_ENV_VAR_WEATHER_SPEED: EnvVar = 6;
9253pub const EnvVar_ENV_VAR_WEATHER_FADE: EnvVar = 7;
9254pub const EnvVar_ENV_VAR_WEATHER: EnvVar = 8;
9255pub const EnvVar_ENV_VAR_EXP_FOG: EnvVar = 9;
9256pub const EnvVar_ENV_VAR_SKYBOX_HOR_SPEED: EnvVar = 10;
9257pub const EnvVar_ENV_VAR_SKYBOX_VER_SPEED: EnvVar = 11;
9258pub const EnvVar_ENV_VAR_SKY_COLOR: EnvVar = 12;
9259pub const EnvVar_ENV_VAR_CLOUDS_COLOR: EnvVar = 13;
9260pub const EnvVar_ENV_VAR_FOG_COLOR: EnvVar = 14;
9261pub const EnvVar_ENV_VAR_SUN_COLOR: EnvVar = 15;
9262pub const EnvVar_ENV_VAR_SHADOW_COLOR: EnvVar = 16;
9263pub const EnvVar_ENV_VAR_SKYBOX_COLOR: EnvVar = 17;
9264pub const EnvVar_ENV_VAR_LAVALIGHT_COLOR: EnvVar = 18;
9265pub const EnvVar_ENV_VAR_LAMPLIGHT_COLOR: EnvVar = 19;
9266pub type EnvVar = ::std::os::raw::c_int;
9267#[repr(C)]
9268#[derive(Debug, Copy, Clone, PartialEq)]
9269pub struct _EnvData {
9270    pub EdgeBlock: BlockID,
9271    pub SidesBlock: BlockID,
9272    pub EdgeHeight: ::std::os::raw::c_int,
9273    pub SidesOffset: ::std::os::raw::c_int,
9274    pub CloudsHeight: ::std::os::raw::c_int,
9275    pub CloudsSpeed: f32,
9276    pub WeatherSpeed: f32,
9277    pub WeatherFade: f32,
9278    pub Weather: ::std::os::raw::c_int,
9279    pub ExpFog: ::std::os::raw::c_int,
9280    pub SkyboxHorSpeed: f32,
9281    pub SkyboxVerSpeed: f32,
9282    pub SkyCol: PackedCol,
9283    pub FogCol: PackedCol,
9284    pub CloudsCol: PackedCol,
9285    pub SkyboxCol: PackedCol,
9286    pub SunCol: PackedCol,
9287    pub SunXSide: PackedCol,
9288    pub SunZSide: PackedCol,
9289    pub SunYMin: PackedCol,
9290    pub ShadowCol: PackedCol,
9291    pub ShadowXSide: PackedCol,
9292    pub ShadowZSide: PackedCol,
9293    pub ShadowYMin: PackedCol,
9294    pub LavaLightCol: PackedCol,
9295    pub LampLightCol: PackedCol,
9296}
9297#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9298const _: () = {
9299    ["Size of _EnvData"][::std::mem::size_of::<_EnvData>() - 100usize];
9300    ["Alignment of _EnvData"][::std::mem::align_of::<_EnvData>() - 4usize];
9301    ["Offset of field: _EnvData::EdgeBlock"][::std::mem::offset_of!(_EnvData, EdgeBlock) - 0usize];
9302    ["Offset of field: _EnvData::SidesBlock"]
9303        [::std::mem::offset_of!(_EnvData, SidesBlock) - 2usize];
9304    ["Offset of field: _EnvData::EdgeHeight"]
9305        [::std::mem::offset_of!(_EnvData, EdgeHeight) - 4usize];
9306    ["Offset of field: _EnvData::SidesOffset"]
9307        [::std::mem::offset_of!(_EnvData, SidesOffset) - 8usize];
9308    ["Offset of field: _EnvData::CloudsHeight"]
9309        [::std::mem::offset_of!(_EnvData, CloudsHeight) - 12usize];
9310    ["Offset of field: _EnvData::CloudsSpeed"]
9311        [::std::mem::offset_of!(_EnvData, CloudsSpeed) - 16usize];
9312    ["Offset of field: _EnvData::WeatherSpeed"]
9313        [::std::mem::offset_of!(_EnvData, WeatherSpeed) - 20usize];
9314    ["Offset of field: _EnvData::WeatherFade"]
9315        [::std::mem::offset_of!(_EnvData, WeatherFade) - 24usize];
9316    ["Offset of field: _EnvData::Weather"][::std::mem::offset_of!(_EnvData, Weather) - 28usize];
9317    ["Offset of field: _EnvData::ExpFog"][::std::mem::offset_of!(_EnvData, ExpFog) - 32usize];
9318    ["Offset of field: _EnvData::SkyboxHorSpeed"]
9319        [::std::mem::offset_of!(_EnvData, SkyboxHorSpeed) - 36usize];
9320    ["Offset of field: _EnvData::SkyboxVerSpeed"]
9321        [::std::mem::offset_of!(_EnvData, SkyboxVerSpeed) - 40usize];
9322    ["Offset of field: _EnvData::SkyCol"][::std::mem::offset_of!(_EnvData, SkyCol) - 44usize];
9323    ["Offset of field: _EnvData::FogCol"][::std::mem::offset_of!(_EnvData, FogCol) - 48usize];
9324    ["Offset of field: _EnvData::CloudsCol"][::std::mem::offset_of!(_EnvData, CloudsCol) - 52usize];
9325    ["Offset of field: _EnvData::SkyboxCol"][::std::mem::offset_of!(_EnvData, SkyboxCol) - 56usize];
9326    ["Offset of field: _EnvData::SunCol"][::std::mem::offset_of!(_EnvData, SunCol) - 60usize];
9327    ["Offset of field: _EnvData::SunXSide"][::std::mem::offset_of!(_EnvData, SunXSide) - 64usize];
9328    ["Offset of field: _EnvData::SunZSide"][::std::mem::offset_of!(_EnvData, SunZSide) - 68usize];
9329    ["Offset of field: _EnvData::SunYMin"][::std::mem::offset_of!(_EnvData, SunYMin) - 72usize];
9330    ["Offset of field: _EnvData::ShadowCol"][::std::mem::offset_of!(_EnvData, ShadowCol) - 76usize];
9331    ["Offset of field: _EnvData::ShadowXSide"]
9332        [::std::mem::offset_of!(_EnvData, ShadowXSide) - 80usize];
9333    ["Offset of field: _EnvData::ShadowZSide"]
9334        [::std::mem::offset_of!(_EnvData, ShadowZSide) - 84usize];
9335    ["Offset of field: _EnvData::ShadowYMin"]
9336        [::std::mem::offset_of!(_EnvData, ShadowYMin) - 88usize];
9337    ["Offset of field: _EnvData::LavaLightCol"]
9338        [::std::mem::offset_of!(_EnvData, LavaLightCol) - 92usize];
9339    ["Offset of field: _EnvData::LampLightCol"]
9340        [::std::mem::offset_of!(_EnvData, LampLightCol) - 96usize];
9341};
9342#[link(name = "ClassiCube", kind = "dylib")]unsafe extern "C" {
9343    pub static mut Env: _EnvData;
9344}
9345pub const Weather__WEATHER_SUNNY: Weather_ = 0;
9346pub const Weather__WEATHER_RAINY: Weather_ = 1;
9347pub const Weather__WEATHER_SNOWY: Weather_ = 2;
9348pub type Weather_ = ::std::os::raw::c_int;
9349unsafe extern "C" {
9350    pub fn Env_Reset();
9351}
9352unsafe extern "C" {
9353    pub fn Env_SetEdgeBlock(block: BlockID);
9354}
9355unsafe extern "C" {
9356    pub fn Env_SetSidesBlock(block: BlockID);
9357}
9358unsafe extern "C" {
9359    pub fn Env_SetEdgeHeight(height: ::std::os::raw::c_int);
9360}
9361unsafe extern "C" {
9362    pub fn Env_SetSidesOffset(offset: ::std::os::raw::c_int);
9363}
9364unsafe extern "C" {
9365    pub fn Env_SetCloudsHeight(height: ::std::os::raw::c_int);
9366}
9367unsafe extern "C" {
9368    pub fn Env_SetCloudsSpeed(speed: f32);
9369}
9370unsafe extern "C" {
9371    pub fn Env_SetWeatherSpeed(speed: f32);
9372}
9373unsafe extern "C" {
9374    pub fn Env_SetWeatherFade(rate: f32);
9375}
9376unsafe extern "C" {
9377    pub fn Env_SetWeather(weather: ::std::os::raw::c_int);
9378}
9379unsafe extern "C" {
9380    pub fn Env_SetExpFog(expFog: cc_bool);
9381}
9382unsafe extern "C" {
9383    pub fn Env_SetSkyboxHorSpeed(speed: f32);
9384}
9385unsafe extern "C" {
9386    pub fn Env_SetSkyboxVerSpeed(speed: f32);
9387}
9388unsafe extern "C" {
9389    pub fn Env_SetSkyCol(color: PackedCol);
9390}
9391unsafe extern "C" {
9392    pub fn Env_SetFogCol(color: PackedCol);
9393}
9394unsafe extern "C" {
9395    pub fn Env_SetCloudsCol(color: PackedCol);
9396}
9397unsafe extern "C" {
9398    pub fn Env_SetSkyboxCol(color: PackedCol);
9399}
9400unsafe extern "C" {
9401    pub fn Env_SetSunCol(color: PackedCol);
9402}
9403unsafe extern "C" {
9404    pub fn Env_SetShadowCol(color: PackedCol);
9405}
9406unsafe extern "C" {
9407    pub fn Env_SetLavaLightCol(color: PackedCol);
9408}
9409unsafe extern "C" {
9410    pub fn Env_SetLampLightCol(color: PackedCol);
9411}
9412#[repr(C)]
9413#[derive(Debug, Hash, PartialEq, Eq)]
9414pub struct ResumeInfo {
9415    pub user: cc_string,
9416    pub ip: cc_string,
9417    pub port: cc_string,
9418    pub server: cc_string,
9419    pub mppass: cc_string,
9420    pub _userBuffer: [::std::os::raw::c_char; 64usize],
9421    pub _serverBuffer: [::std::os::raw::c_char; 64usize],
9422    pub _ipBuffer: [::std::os::raw::c_char; 16usize],
9423    pub _portBuffer: [::std::os::raw::c_char; 16usize],
9424    pub _mppassBuffer: [::std::os::raw::c_char; 64usize],
9425}
9426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
9427const _: () = {
9428    ["Size of ResumeInfo"][::std::mem::size_of::<ResumeInfo>() - 304usize];
9429    ["Alignment of ResumeInfo"][::std::mem::align_of::<ResumeInfo>() - 8usize];
9430    ["Offset of field: ResumeInfo::user"][::std::mem::offset_of!(ResumeInfo, user) - 0usize];
9431    ["Offset of field: ResumeInfo::ip"][::std::mem::offset_of!(ResumeInfo, ip) - 16usize];
9432    ["Offset of field: ResumeInfo::port"][::std::mem::offset_of!(ResumeInfo, port) - 32usize];
9433    ["Offset of field: ResumeInfo::server"][::std::mem::offset_of!(ResumeInfo, server) - 48usize];
9434    ["Offset of field: ResumeInfo::mppass"][::std::mem::offset_of!(ResumeInfo, mppass) - 64usize];
9435    ["Offset of field: ResumeInfo::_userBuffer"]
9436        [::std::mem::offset_of!(ResumeInfo, _userBuffer) - 80usize];
9437    ["Offset of field: ResumeInfo::_serverBuffer"]
9438        [::std::mem::offset_of!(ResumeInfo, _serverBuffer) - 144usize];
9439    ["Offset of field: ResumeInfo::_ipBuffer"]
9440        [::std::mem::offset_of!(ResumeInfo, _ipBuffer) - 208usize];
9441    ["Offset of field: ResumeInfo::_portBuffer"]
9442        [::std::mem::offset_of!(ResumeInfo, _portBuffer) - 224usize];
9443    ["Offset of field: ResumeInfo::_mppassBuffer"]
9444        [::std::mem::offset_of!(ResumeInfo, _mppassBuffer) - 240usize];
9445};